繁体   English   中英

typescript 等待异步 function 返回 Promise<void></void>

[英]typescript awaiting an async function that returns a Promise<void>

Method() {
    // simulating a method of a third-party library that returns Promise<void>
    return new Promise(() => {
      // some time-consuming operations
    }).then(() => console.log('end'))
  }

在调用不返回任何数据的异步方法时,我们是否必须使用await关键字?

await this.Method().then(() => console.log('done'))
// or
this.Method().then(() => console.log('done'))

对于此示例,是否保证在两种情况下(使用和不使用await关键字)控制台打印“完成”之前 Method() 中的所有操作都已完成?

是否保证Method()中的所有操作在.then()回调打印“完成”之前完成

是的,通过使用.then()方法 await关键字在这里无关紧要。 当你在做的时候,这很重要

await this.Method();
console.log('done');

(您可能应该这样做)。

在调用不返回任何数据的异步方法时,我们是否必须使用await关键字?

是的,因为它们可能仍然会抛出错误,并且即使您不关心返回值,您也希望等待完成。 请参阅我可以在 nodejs (ES7) 中触发并忘记 promise 吗? 进行更多讨论。

您可以简单地执行以下操作:

caller = await this.Method().then(() => console.log('done'))

或者,如果您不需要使用结果

caller = this.Method()

暂无
暂无

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

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