標題重寫為:"(ES6)類別 (ES2017)非同步/等待的getter方法"
P粉564192131
P粉564192131 2023-08-22 22:10:47
0
1
491

是否可能或將來可能透過ES2017的await / async函數從ES6類別的getter傳回一個值。

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');


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學習者快速成長!