(ES6)类(ES2017)异步/等待获取器 [英] (ES6) class (ES2017) async / await getter

查看:132
本文介绍了(ES6)类(ES2017)异步/等待获取器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有可能拥有ES6类吸气剂 从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)异步/等待获取器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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