Возвращайте Promise, который resolve завершает внутри setTimeout, и передавайте результат через последовательные then.
Реализуйте функцию, возвращающую Promise с задержкой через setTimeout, и покажите последовательный вызов таких функций с передачей результата предыдущего вызова в следующий.
Возвращайте Promise, который resolve завершает внутри setTimeout, и передавайте результат через последовательные then.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Возвращайте Promise, который resolve завершает внутри setTimeout, и передавайте результат через последовательные then.
Пример:
function delayValue(value, ms) {
return new Promise(resolve => setTimeout(() => resolve(value), ms));
}
delayValue(1, 100)
.then(value => delayValue(value + 1, 100))
.then(value => delayValue(value * 2, 100))
.then(console.log);
Будет выведено 4 после трёх последовательных ожиданий. Важно возвращать следующий Promise из then, иначе цепочка не дождётся его завершения.