(ES6) 类 (ES2017) async/await getter [英] (ES6) class (ES2017) async / await getter
本文介绍了(ES6) 类 (ES2017) async/await getter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有可能拥有 ES6 类 getter从 ES2017 await/async 函数返回一个值.
Is it or will it be possible to have an ES6 class getter return a value from an ES2017 await / async function.
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 在回答下面这里有一个很好的解决方法..
Update: As others have pointed out, this doesn't really work. @kuboon has a nice workaround in an answer below here..
你可以这样做
class Foo {
get bar() {
return (async () => {
return await someAsyncOperation();
})();
}
}
又是一样的
class Foo {
get bar() {
return new Promise((resolve, reject) => {
someAsyncOperation().then(result => {
resolve(result);
});
})
}
}
这篇关于(ES6) 类 (ES2017) async/await getter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文