Выбор ответа Middle Современный синтаксис обновлено

Promise.withResolvers

Вопрос

Что возвращает Promise.withResolvers() (ES2024)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Объект { promise, resolve, reject } для завершения промиса снаружи. Promise.withResolvers() создаёт ожидающий промис и отдаёт объект с ним и его функциями resolve и reject.

Варианты ответа

  1. Уже выполненный промис со значением undefined, как Promise.resolve()
  2. Функцию, которая при вызове создаёт новый промис с переданными обработчиками
  3. Массив [promise, resolve, reject], который удобно разобрать деструктуризацией
  4. Объект { promise, resolve, reject } для завершения промиса снаружиправильный ответ

Разбор

Promise.withResolvers() создаёт ожидающий промис и отдаёт объект с ним и его функциями resolve и reject. Раньше для этого писали let resolve; const p = new Promise((r) => { resolve = r; });. Удобно, когда промис завершается из другого места: обработчик события, очередь, тест. Возвращается объект, а не массив, и промис изначально в состоянии pending.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме