我想定义一个只读对象属性异步取一个值,然后使用新的EcmaScript 5个干将返回。
然而,属性总是返回undefined
即使magicValue
在下面的示例代码是明确从未不确定。 此外,当我刚return 'xxx';
打印的值仍然是undefined
。 它只有当我的工作return
回调函数之外。
好像return
被立即执行,无论回调是否myAsyncFunction
被调用。 我不知道我是否该错误在V8或者如果我滥用JavaScript的干将。
我能得到这个工作? 我想,既然我可以使用getter和setter现在,我将使用getter / setter方法来读取和写入性能和定期的功能做某些任务。
var User = function (id) {
this.id = id;
};
Object.defineProperty(User.prototype, 'magic', {
get : function () {
myAsyncFunction(function (magicValue) {
return magicValue;
});
}
});
var u = new User(5);
console.log(u.magic);
打印undefined
。