Tajuk ditulis semula kepada: "(ES6) Class (ES2017) Async/Await Getter Method"
P粉564192131
P粉564192131 2023-08-22 22:10:47
0
1
636
<p>Adakah mungkin atau mungkin pada masa hadapan untuk mengembalikan nilai daripada pengambil kelas ES6 melalui fungsi menunggu/async ES2017. </p> <pre class="brush:php;toolbar:false;">class Foo { async get bar() { var result = tunggu someAsyncOperation(); pulangan hasil; } } fungsi someAsyncOperation() { kembalikan Janji baharu(fungsi(selesai) { setTimeout(fungsi() { menyelesaikan ('baz'); }, 1000); }); } var foo = new Foo(); foo.bar.should.equal('baz');</pre> <p><br /></p>
P粉564192131
P粉564192131

membalas semua(1)
P粉025632437

Kemas kini: Seperti yang orang lain nyatakan, ini tidak benar-benar berkesan. @kuboon menyediakan penyelesaian yang bagus di bawah.

Anda boleh melakukan ini

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

Ini sama seperti kod di bawah

class Foo {
    get bar() {
        return new Promise((resolve, reject) => {
            someAsyncOperation().then(result => {
                resolve(result);
            });
        })
    }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan