Heim  >  Fragen und Antworten  >  Hauptteil

Titel umgeschrieben in: „(ES6) Class (ES2017) Async/Await Getter Method“

<p>Ist es möglich oder in Zukunft möglich, einen Wert vom Getter einer ES6-Klasse über die Wait/Async-Funktionen von ES2017 zurückzugeben? </p> <pre class="brush:php;toolbar:false;">class Foo { asynchron get bar() { var result = waiting someAsyncOperation(); Ergebnis zurückgeben; } } Funktion someAsyncOperation() { return new Promise(function(resolve) { setTimeout(function() { auflösen('baz'); }, 1000); }); } var foo = new Foo(); foo.bar.should.equal('baz');</pre> <p><br /></p>
P粉564192131P粉564192131395 Tage vor546

Antworte allen(1)Ich werde antworten

  • P粉025632437

    P粉0256324372023-08-23 11:52:11

    更新:正如其他人指出的那样,这并不真正起作用。@kuboon在下面提供了一个不错的解决方法。

    你可以这样做

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

    这与下面的代码是相同的

    class Foo {
        get bar() {
            return new Promise((resolve, reject) => {
                someAsyncOperation().then(result => {
                    resolve(result);
                });
            })
        }
    }

    Antwort
    0
  • StornierenAntwort