我看了一个教程,其中一个类First
有一个async方法
另一个类Second
在自己的方法中使用了First
类异步方法它没有异步元素,但用async
关键字
标记。First
类实例通过依赖注入共享
我不明白为什么async
关键字被用于第二个方法
我已经重建了一个简单的例子与父类和子类子类从父类返回async方法
在子类方法中使用asyc
关键字不会改变结果
在这种情况下使用async
关键字是否有更深的含义?
class OldPromise {
promise1 = new Promise((resolve, reject) => {
setTimeout(() => resolve(`print this later`), 4000)
});
async returnPromise() {
let result1 = await this.promise1;
console.log(result1)
return result1
}
}
class NewPromise extends OldPromise {
returnOldPromise() {
return this.returnPromise()
}
}
const newPromiseClass = new NewPromise();
newPromiseClass.returnOldPromise()
//> print this later
async
关键字不需要在子类中使用,因为您不需要在其中await
任何内容。根据经验,不要在没有await
的情况下使用async
。在您的示例中,returnOldPromise()
返回Promise
,无论它是否具有async
关键字。