Реализуйте функцию, возвращающую Promise с задержкой через setTimeout, и покажите последовательный вызов таких функций с передачей результата предыдущего вызова в следующий.

Возвращайте Promise, который resolve завершает внутри setTimeout, и передавайте результат через последовательные then.

Короткий ответ

Что ответить на собеседовании

Возвращайте 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, иначе цепочка не дождётся его завершения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее