【问题标题】:Windows Store Apps: Difference between WinJS.Promise.join and queueEventWindows 应用商店应用程序:WinJS.Promise.join 和 queueEvent 之间的区别
【发布时间】:2012-10-30 17:21:22
【问题描述】:
我的假设是 WinJS.Application.queue 事件适用于在全局上下文中排队应用程序事件(例如检查点、卸载、激活、加载...),但与异步调用无关。 WinJS.Promise.join 可以在事件处理程序 setPromise() 中使用,以确保在继续之前完成所有异步调用。任何上下文或澄清表示赞赏。
谢谢!
【问题讨论】:
标签:
windows-8
microsoft-metro
winjs
windows-store-apps
【解决方案1】:
它们是两个完全不同的东西。
WinJS.Application.queueEvent 用于向使用 WinJS.Application.addEventHandler 函数注册的处理程序引发事件。随着时间的推移,可能会引发多个事件,并且可能会多次调用处理程序。
WinJS.Promise.join 用于创建一个新的 Promise 对象,该对象在您传递给它的所有 Promise 完成时完成。你需要从一开始就做出承诺,一旦承诺完成(成功或失败),它就会保持完成。您的处理程序只会运行一次。
它们都用于异步处理,但它们用于不同风格的异步。 Promise 用于一些会发生并做某事,并在稍后返回的事情,但它们只会运行一次。在您的应用程序的整个生命周期中,事件可能会发生多次。