(ES6) 类 (ES2017) async/await getter [英] (ES6) class (ES2017) async / await getter

查看:46
本文介绍了(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆