我有一个被其他对象调用的函数,当我的应用程序加载时,获取参数,该函数应等待所有对象的调用,然后执行,因此使用promise模式可以确保所有对象都被加载,但是我不知道对象的数量,我不想设置加载超时。我不谈论特定的技术,例如jquery,需要算法。
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);
如果您不想要现成的解决方案,而是想自己实现所有算法,那么请阅读Wikipedia文章中引用的文章:期货和承诺以及Promises / A和Promises / A +的规范。
为了确保您做对了,请阅读Domenic Denicola撰写的“ 您缺少承诺点”,并查看Promises / A +的合规性测试。
另一方面,如果您认为重新发明轮子不值得(除非是为了教育- 在这种情况下,一定要尽可能多地重新发明轮子),那么请看一看RSVP.js,这是一个轻量级的工具提供用于组织异步代码的工具的库。RSVP.js例如由Ember.js使用。