我在WinJS中有一个类,在构造器中有一个属性。该属性调用异步方法以读取其值。
这是代码:
var MyClass = WinJS.Class.define(
// The constructor function.
function () {
var self = this;
Windows.Storage.ApplicationData.current.localFolder.getFolderAsync("MYFOLDER")
.done(function (folder) {
self.myFolder = folder;
},
function (error) {
self.myFolder = null;
});
},
// The set of instance members.
{
myFolder: null,
});
然后,当我实例化该类时:
var myClass = new MyClass();
之所以这样做,是因为我实例化了该类,而myClass.myFolder将始终对我可用,而无需重新运行代码。现在,我的问题显然是在实例化该对象之后,myClass.myFolder不会立即可用。
如何确保仅在具有值之后才访问myClass.myFolder属性?
我可以在属性中返回一个Promise,但是基本上我不确定如何在构造函数中使用Promise。
为了使该属性成为一个承诺,您需要做的就是将getFolderAsync的结果分配给该属性。
var MyClass = WinJS.Class.define(
// The constructor function.
function () {
var self = this;
this.myFolder = Windows.Storage.ApplicationData.current.localFolder.getFolderAsync("MYFOLDER");
},
// The set of instance members.
{
myFolder: null,
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句