解决 TypeScript 中多个回调的模式

Pattern to solve multiple callbacks in TypeScript

我正在寻找解决这个经常出现的问题的方法。

假设我在 TypeScript 中有一个 class,如下所示:

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 现在不是一个选项?

As I know async and await is not an option right now

简单的回答:是的,不是一个选项

I would like to call finishedWorking() when work() and doMoreWork() are done

使用承诺!

constructor() {
    Promise.all([this.work(),this.doMoreWork()])
           .then(()=>finishedWorking());
}

work() {
    return // some promise //;
}

doMoreWork() {
    return // some promise //;
}   

由于大多数用户浏览器本身不支持它(iojs 本身支持它!),您可以使用类似 Q 的内容:https://github.com/kriskowal/q