我有一个用其他对象调用的函数,当我的应用程序加载时,获取参数,该函数应该等待所有对象的调用,然后使用 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/A 和 Promises/A+ 的规范。
并确保您做对了,请阅读 Domenic Denicola 的 You're Missing the Point of Promises 并查看 Compliances tests for Promises/A+ 。
另一方面,如果您认为重新发明轮子不值得(除非是为了教育 - 在这种情况下,无论如何都要重新发明尽可能多的轮子),然后看看 RSVP.js ,一个轻量级的库,它提供用于组织异步代码的工具。例如, Ember.js 使用 RSVP.js。