Задача: промис с ограничением времени
Напишите функцию function withTimeout(promise, ms, fallback), которая возвращает новый промис. Если promise выполнится раньше, чем пройдут ms миллисекунд, новый промис выполняется с тем же значением; если promise раньше отклонится, новый промис отклоняется с той же ошибкой. Если за ms миллисекунд не случилось ни того ни другого, новый промис выполняется со значением fallback.
В тестах after(ms, value) — промис, который выполнится со значением value через ms миллисекунд, а failAfter(ms, message) через ms миллисекунд отклонится с ошибкой message.
withTimeout(after(10, "data"), 40, "late")→"data"withTimeout(after(40, "data"), 10, "late")→"late"withTimeout(failAfter(10, "boom"), 40, "late")→ отказ с ошибкойboom
Ограничения: ms — целое число от 10 до 50; fallback возвращается как есть, даже когда это 0; отказ, который случился позже ms миллисекунд, уже не важен.
Не добавляйте лишних импортов, если в задаче это прямо не сказано.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.