В приведенном ниже примере кода функция a
возвращает обещание. Использование await
после возврата - бесполезно , но я подумал (и согласно примерам ), что функция, возвращающая обещание, все равно должна быть функцией async
. Однако, даже если я не добавлю ключевое слово async
к a
, оно все равно будет работать, если оно await
редактируется в функции b
. Если я не жду a()
внутри b
, тогда bRes
- это объект обещания, а не 5
. Таким образом, это означает, что у меня может быть бесконечное количество функций, таких как a
, которые возвращают обещание, и до тех пор, пока первая функция, которая вызывает эту бесконечную цепочку await
, дает результат, тогда мне не нужно заключать промежуточные функции вasync
?
const getPromise = () => new Promise((resolve, reject) => {
setTimeout(() => {
console.log('promise finished')
resolve(5)
}, 2000)
})
const a = () => {
console.log('from a')
return getPromise()
}
const b = async () => {
const bRes = await a()
console.log('bRes', bRes)
}
b()