我目前正在尝试使用构造函数内部的回调运行异步函数。然后我需要从该回调中获取数据并在创建类的实例时使用它。我的代码目前看起来像这样:
class Foo extends Bar {
constructor(data) {
someAsyncCall((response) => {
data.a = response;
super(data);
});
}
}
非常感谢任何帮助:)
答案 0 :(得分:1)
在我看来,我不会在构造函数中做到这一点。使用Q库和另一个辅助类作为数据访问层。
HelperClass.getFooById(id)
.then(function (data) {
return new Foo(data);
})
getFooById
方法将使用Q.defer()
,并在数据解析后调用Q.resolve(data)
。
如果在构造函数内部执行此操作,即使已经有数据,也无法在不发出请求的情况下创建该类的实例。
Q Library:https://github.com/kriskowal/q