实现承诺模式



我有一个与其他对象调用的函数,当我的应用程序加载时,获取参数和函数应该等待所有对象的调用,然后执行,所以使用承诺模式,我可以确保所有对象都加载,但我不知道对象的计数,我不想设置加载超时。具体的技术,比如jquery和需要的算法,我就不讲了。

伪代码:

      function loadWidget(id){
        list.push(id);
       //here I should ensure all Widget is loaded

          }
在其他应用程序中,我调用

    app.loadWidget.add(widget1.id);
    .
    .
    .      
    app.loadWidget.add(widget2.id);

如果你不想要现成的解决方案,而是想自己实现所有的算法,那么请阅读维基百科文章中引用的论文:期货和承诺以及promises/A和promises/A+的规范。

为了确保你做得正确,请阅读Domenic Denicola的《你错过了承诺的要点》,并查看承诺/A+的遵从性测试。

另一方面,如果你认为重新发明轮子是不值得的(除非是为了教育——在这种情况下,尽一切可能重新发明轮子),那么看看RSVP.js,一个轻量级的库,它提供了组织异步代码的工具。RSVP.js被Ember.js使用

最新更新