Код Middle Разминка: короткие функции обновлено
onceAsync
Условие
Обёртка запускает асинхронную fn только один раз; все вызовы получают один и тот же промис, включая параллельные.
Что проверяют тесты
вызывается один раз
все получают один результат
параллельные вызовы до разрешения
Как подойти
Кэш результата не спасает от параллельных вызовов: второй придёт до того, как первый успел разрешиться. Кэш промиса закрывает и это. Так делают единичную инициализацию - загрузку конфига, установку соединения.
Подсказки: 1
- Кэшируй сам промис, а не результат.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.