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