Я пытаюсь обернуть голову вокруг правила no-return-await .
Рассмотрим этот фрагмент:
const a = async () => {
return 5;
};
const b1 = async () => {
return a();
};
const b2 = async () => {
return await a();
};
const wut = async () => {
console.log(await b1());
console.log(await b2());
};
wut();
Каждая асинхронная функция возвращает обещание, поэтому a()
возвращает обещание.В этом случае я ожидаю, что b1()
также обернет обещание, поэтому результатом будет вложенное обещание.Для извлечения значения потребуется двойное ожидание, как в b2
, но это не требуется, поскольку оба console.log
возвращают значение должным образом.В чем дело?Разрешены ли вложенные обещания рекурсивно?Я потерялся.Спасибо за любые указатели и объяснения!