实施承诺模式

7 javascript algorithm design-patterns

我有一个用其他对象调用的函数,当我的应用程序被加载时,获取参数,函数应该等待所有对象的调用,然后使用promises模式执行,我可以确保所有对象都已加载但我不知道对象的数量,我不希望设置超时加载.我不谈论特定的技术,如jquery需要算法.

伪代码:

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


          }
Run Code Online (Sandbox Code Playgroud)

在其他应用程序我打电话

    app.loadWidget.add(widget1.id);
    .
    .
    .      
    app.loadWidget.add(widget2.id);
Run Code Online (Sandbox Code Playgroud)

rsp*_*rsp 13

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

为了确保你做得对,请阅读Domenic Denicola的" 缺少承诺点"并查看Promises/A +符合性测试.

另一方面,如果您认为重新发明轮子是不值得的(除非是为了教育 - 在这种情况下一定要重新发明尽可能多的轮子)然后看看RSVP.js,一个轻量级提供组织异步代码的工具的库.RSVP.js例如由Ember.js使用.