[英]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.