【发布时间】:2014-04-30 16:03:31
【问题描述】:
在我的应用程序中有一些地方,一个对象应该发出一个事件,并且应该延迟执行,直到所有事件处理程序都完成工作。 事件处理程序可能正在执行异步操作(例如写入数据库)。
Application.on("login", function(evt) {
// Asynchronous operation (e.g. update info in database)
});
Application.trigger("login").then(function() {
// Execute stuff after all (async) event handlers are done
});
我环顾四周,并没有找到任何既定的设计模式。我有一个我很满意的实现,但我很好奇是否有人以不同的方式解决了这个问题?
【问题讨论】:
-
@DavidTansey:那里提出的解决方案似乎都不起作用
-
@Bergi 是正确的。 jQuery的触发器是同步操作。
标签: javascript design-patterns asynchronous promise