Promise.withResolvers()Promise.withResolvers() — это метод, введённый в ES2024, который возвращает объект с тремя свойствами:
promise — экземпляр Promiseresolve — функция для его разрешенияreject — функция для его отклоненияРаньше создание отложенного промиса требовало вручную захватывать resolve и reject во внешние переменные:
let resolve, reject;
const promise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
Этот подход многословен и подвержен ошибкам, так как функции-резолверы должны быть объявлены вне области конструктора, прежде чем их можно будет использовать где-либо ещё.
Promise.withResolvers()const { promise, resolve, reject } = Promise.withResolvers();
Эта одна строка делает ровно то же самое, но код становится значительно чище и понятнее.
resolve или reject должны быть вызваны вне конструктора Promise, например в обработчиках событий или коллбэкахPromise.withResolvers() — это синтаксическое улучшение, которое не меняет то, как Promises работают внутри. Оно просто предоставляет более удобный API для случаев, когда тебе нужно управлять разрешением промиса из внешней области видимости — паттерн, известный как отложенный промис.
Promise.withResolvers() возвращает объект с тремя свойствами: promise, resolve и reject.
Новый — ещё не проверен сообществом
Вы