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

最佳答案

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

并确保您做对了,请阅读 Domenic Denicola 的 You're Missing the Point of Promises 并查看 Compliances tests for Promises/A+

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

10-07 16:02
查看更多