JavaScript · Senior · Запитання 50 з 75
Чому async-функцію не можна передати як виконавець у new Promise(async (resolve) => ...)?
- ✓Правильна відповідь: Помилка після
awaitне відхилить проміс - він зависне - 2Конструктор
PromiseкидаєTypeErrorдля будь-яких async-функцій - 3Це працює, але виконавець і проміс виконаються двічі
Пояснення
Конструктор ігнорує проміс, повернений async-виконавцем, тому виняток після await перетвориться на необроблене відхилення, а зовнішній проміс лишиться pending. Якщо всередині вже є await, зазвичай обгортка new Promise узагалі не потрібна - досить async-функції.