是否有可能有 ES6 类 getter 从 ES2017 等待/异步函数返回一个值。
class Foo {
async get bar() {
var result = await someAsyncOperation();
return result;
}
}
function someAsyncOperation() {
return new Promise(function(resolve) {
setTimeout(function() {
resolve('baz');
}, 1000);
});
}
var foo = new Foo();
foo.bar.should.equal('baz');
最佳答案
更新:正如其他人指出的那样,这实际上不起作用。 @kuboon 在答案 below 中有一个很好的解决方法在这里..
你可以这样做
class Foo {
get bar() {
return (async () => {
return await someAsyncOperation();
})();
}
}
这又与
相同class Foo {
get bar() {
return new Promise((resolve, reject) => {
someAsyncOperation().then(result => {
resolve(result);
});
})
}
}
关于ecmascript-6 - (ES6) 类 (ES2017) 异步/等待 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33879401/