我正在使用WinJS.UI.Pages.render调用将片段加载到页面中。我read that一个页面的ready方法可以返回一个在页面准备好时完成的promise。我认为这个承诺是WinJS.UI.Pages.render方法返回的,但事实并非如此。我认为这将是一个很好的机制,可以将值从片段异步传递回调用者。
是否可以从WinJS.UI.Pages.render promise done处理程序访问ready promise?
答案 0 :(得分:1)
查看实现中的代码,看起来这样的实际上可能是WinJS中的 bug 。 WinJS.UI.Pages.render
方法确实会返回一个承诺,但它是processed
完成之后的结果,并且控制实例的结果已返回为完成的承诺价值。
您最好的选择是作为您的Page类成员添加额外的承诺。然后当你得到render
时,剥离那个承诺,而不是render
承诺本身。
使用构造函数或类似函数中创建的承诺非常重要,因为render
返回的承诺将在页面类调用processed
时完成 - 之前< / strong>您的ready
返回,因此在render
完成后立即访问该值,您的ready
方法已 尚未被调用。