7

我有一个与其他对象一起调用的函数,当我的应用程序加载时,获取参数并且该函数应该等待与所有对象的调用,然后使用承诺模式执行所以我可以确保所有对象都已加载,但我不知道对象计数,我不想为加载设置超时。我不谈论具体的技术,比如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);
4

1 回答 1

13

如果您不想要现成的解决方案,而是想自己实现所有算法,请阅读 Wikipedia 文章中引用的论文:Futures and Promises 以及 Promises /APromises/A+的规范。

为了确保您做对了,请阅读Domenic Denicola的 You're Missing the Point of Promises并查看Promises/A+ 的合规性测试

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

于 2013-03-06T11:55:20.527 回答