【发布时间】:2017-05-15 20:15:22
【问题描述】:
问题很简单,就在这段代码里
class Identifier {
constructor(id) {
if (/^[0-9]*$/.test(id)) {
database.exists('users', {userid: id}).then(exists => {
if (exists) {
this.id = id;
} else {
throw 'id_not_exist';
}
});
}
}
}
我正在尝试将类的属性设置为回调函数的结果。但是,当执行此代码时
var ident = new Identifier(1);
console.log(ident.id);
返回的值是未定义的,这似乎表明构造函数在回调执行之前完成。构造函数不应该在回调完成之前阻塞吗?有没有更好的方法来做到这一点?
【问题讨论】:
标签: javascript