Задать вопрос

Нужно ли оборачивать синхронную функцию в setTimeout, если нужно вернуть promise?

Нужно ли оборачивать синхронную функцию в setTimeout, если нужно вернуть promise?
return new Promise((resolve, reject) => {
  setTimeout(() => {
    let data = syncFoo()
    resolve(data)
  }, 0)
})
  • Вопрос задан
  • 224 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
Если вы делает запрос к серверу, то это асинхронный процесс, если вы ожидаете ввод пользователя - это асинхронный процесс. А при помощи setTimeout вы по сути имитируете какой-либо процесс, то есть после того как прошло 20 секунд, должно, что-то произойти. Поэтому всегда вставлять его не нужно, главное, чтобы внутри Promise была асинхронная операция, которая после завершения вызовет resolve или reject. Допустим вы загружаете изображения с другого сервака на свой и после того, как будут получены данные, вы вызываете resolve, а если оборвалось, то reject. Никакой setTimeout в данном случае не нужен. А если функция синхронная, тогда да, setTimeout нужен.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HoHsi
@HoHsi
Если вы выполняете функцию без сайд-эффекта (это не запрос к базе / API / тому, что может не ответить), то вообще можете вернуть
return Promise.resolve(data);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы