JavaScript 中顶级异步函数返回什么?

问题描述 投票:0回答:1

如果我调用一个异步函数,但它没有显式地从等待中返回任何内容,它会返回一个已解析的 Promise 吗?还是虚空?还有别的吗?

例如像这样的 IIFE,或者这样但它被同步代码在全局范围内调用:

(async myFunc() {
   const list = await someFunc();
   const anotherList = someOtherFunc(list);
   console.log(anotherList);
})();

我脑子里认为所有异步函数都会返回一个 Promise。

javascript asynchronous async-await promise
1个回答
0
投票

如果 async IIFE 内的代码是同步的并且没有返回 Promise,那么它会返回一个已解决的已完成 Promise。如果它包含

await
或返回一个承诺,它将返回一个待处理的承诺:

let promise = (async () => {

})();

console.log(promise);

promise = (async () => {
   const list = await 1;
})();

console.log(promise);

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.