繁体   English   中英

等待异步功能

[英]Await for an async function

有没有办法等待异步功能? 诸如yield* (带有星号)之类的东西将委托给另一个生成器函数。

例如:

asyncFunction1 = async () => {
    await promise1;
    await promise2;
}

asyncFunction2 = async () => {
    await asyncFunction1(); // can we do that or it MUST be a promise?
}

将函数标记为async使其隐式返回一个promise:

调用async函数时,它将返回Promise async函数返回值时, Promise将使用返回的值进行解析。 async函数抛出异常或某个值时, Promise将被抛出的值拒绝。

来源

换句话说,即使该函数返回非Promise值,您也可以await它(因为该值将被Promise自动包装):

async function test() {
  return 123;
}

void async function() {
  let value = await test();
  console.log('value', value);
}();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM