我正在寻找解决这个经常出现的问题的方法。
假设我在TypeScript中有一个类如下:
class Example {
constructor() {
this.work();
this.doMoreWork();
}
work() {
// Work on some more borring async work
}
doMoreWork() {
// Going for some borring async work
}
finishedWorking() {
// Call me when work() and doMoreWork() is finished
}
}
我想在work()和doMoreWork()完成后调用finishedWorking()。有没有人知道我可以在TypeScript中使用的好模式来解决这个问题?
我知道async和await现在不是一个选项吗?
答案 0 :(得分:1)
我知道async和await现在不是一个选项
简单回答:是的,不是选项
我想在work()和doMoreWork()完成时调用finishedWorking()
使用承诺!
constructor() {
Promise.all([this.work(),this.doMoreWork()])
.then(()=>finishedWorking());
}
work() {
return // some promise //;
}
doMoreWork() {
return // some promise //;
}
由于大多数用户浏览器本身不支持它(iojs原生支持它!),您可以使用Q之类的内容:https://github.com/kriskowal/q