Код Senior Разминка: короткие функции обновлено

debouncePromise

Условие

debounce, возвращающий промис: все вызовы за окно получают результат единственного фактического вызова.

Что проверяют тесты

  • один вызов на окно

  • ошибка доходит до всех

Как подойти

Обычный debounce молча теряет результат - вызывающий не может дождаться. Список ожидающих превращает его в пригодный для async/await. Обнуление списка до вызова fn обязательно: иначе вызовы следующего окна попадут в текущую раздачу.

Подсказки: 1
  1. Копи resolve и reject всех вызовов и раздавай один результат.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.