標題重寫為:"(ES6)類別 (ES2017)非同步/等待的getter方法"
P粉564192131
P粉564192131 2023-08-22 22:10:47
0
1
538
<p>是否可能或將來可能透過ES2017的await / async函數從ES6類別的getter傳回一個值。 </p> <pre class="brush:php;toolbar:false;">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');</pre> <p><br /></p>
P粉564192131
P粉564192131

全部回覆(1)
P粉025632437

更新:正如其他人指出的那樣,這並不真正起作用。 @kuboon在下面提供了一個不錯的解決方法。

你可以這樣做

class Foo {
    get bar() {
        return (async () => {
            return await someAsyncOperation();
        })();
    }
}

這與下面的程式碼是相同的

class Foo {
    get bar() {
        return new Promise((resolve, reject) => {
            someAsyncOperation().then(result => {
                resolve(result);
            });
        })
    }
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!