实施承诺模式

时间:2013-03-06 11:16:00

标签: javascript algorithm design-patterns

我有一个用其他对象调用的函数,当我的应用程序被加载时,获取参数并且函数应该等待所有对象的调用,然后使用promises模式执行,我可以确保所有对象都已加载但我不知道知道对象的数量,我不想设置超时加载。我不讨论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);

1 个答案:

答案 0 :(得分:13)

如果你不想要现成的解决方案,而是想自己实现所有算法,那么请阅读维基百科文章中提到的论文:Futures and promises以及Promises/A和{{3的规范}}

为确保您做得正确,请阅读Domenic Denicola的Promises/A+并查看You're Missing the Point of Promises

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