Можно ли передавать в промис ассинхронную функцию?
Можно ли использовать async при работе с промисами? То есть функцию которая передается в промис сделать ассинхронной? Чтобы внутри нее использовать await. То есть будет ли корректно после этого работать промис?
return new Promise(async (resolve, reject) => {
let a = await someFunc();
resolve(a);
})
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Тут главное, где и когда вы вызовете колбэк resolve. Вы можете не только использовать асинхронную функцию, вы можете передавать resolve по любой цепочке колбэков и даже разрешать resolve с другим промисом — всё будет автоматически обработано:
new Promise(async (resolve, reject) => {
let a = await Promise.resolve(42);
setTimeout(() => resolve(Promise.resolve(a)));
}).then(console.log); // 42