小编Ras*_*ton的帖子

类构造函数中的异步数据加载

例:

var readBackend = function(){
    var deferred = q.defer();
    readData().then(function(data) {
         deferred.resolve(data);
      })
    return deferred.promise;
}

class Test {
    constructor(){
        readBackend().then(function(data) {
            this.importantData = data;
        })
    }

    someFunc() {
        //iterate over important data, but important data is defined
        //promise didnt resolved yet
    }

}

var test = new Test();
test.someFunc(); //throws exception!
Run Code Online (Sandbox Code Playgroud)

有没有办法确保,当我调用时,对象属性是由构造函数启动的someFunc

我想到的唯一方法是创建init函数,它将返回promise,但是,每次我使用我的类时,我都会依赖init函数来正常工作

javascript ecmascript-6

2
推荐指数
1
解决办法
1184
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1