直接调用异步函数就像g();
返回一个Promise
可以解析/拒绝的函数:
g().then((result) => {
doSomethingWith(result);
doSomethingElseWith(result);
});
Promise
在另一个中返回 a Promise
(这就是这样return f();
做的)将用内部承诺的值解决外部承诺。
只需调用g()
将启动g
正在执行的任何操作,而不是等待其完成,丢弃结果。
调用g
withawait
要求封闭范围也是一个async
函数,它在概念上“等待” g
“返回”(实际上是解析/拒绝)。
使用关键字调用异步函数与不使用和使用 a 的await
调用基本相同,只是语法更好。所以这:await
Promise
async function f () { ... }
try {
var result = await f();
doSomethingWith(result);
} catch (error) {
handle(error);
}
其实和这个是一样的:
async function f() { ... }
f().then(
(result) => doSomethingWith(result),
(error) => handle(error)
);