Apabila saya menggunakan "menunggu" di peringkat atas seperti ini:
const LuckyDrawInstance=await new web3.eth.Contract(abi)
Saya mendapat amaran: "set Experiments.topLevelAwait true" pada terminal. Apabila saya cuba menambahnya pada "tsconfig.json" ia masih tidak berfungsi. Ia mengatakan harta "percubaan" tidak wujud.
Saya boleh membalutnya dalam fungsi async, tetapi saya mahu menetapkannya tanpa fungsi pembalut.
Penyelesaian terkini yang berkesan untuk saya semasa menulis artikel ini ialah menggunakan Babel dan bukannya SWC, kerana Next.js tidak membenarkan konfigurasi SWC tersuai, oleh itu, anda tidak boleh menghantar
允许
fail.topLevelAwait
。 swcrc@babel/plugin-syntax-top-level-await
的 Babel 插件添加到package.json
dalam.Sebagai contoh.
Dalam
package.json
所在项目的根目录中创建.babelrc
fail.In
.babelrc
中确保包含next/babel
预设和topLevelAwait
pemalam.Sebagai contoh.
Ini adalah penyelesaian paling mudah sehingga pasukan Next.js membenarkan kami memasukkan konfigurasi SWC. Ambil perhatian bahawa dengan melakukan ini, anda tidak akan mendapat manfaat prestasi SWC kerana ia akan dilumpuhkan memihak kepada Babel.
Tiada kaitan dengan tsconfig.json. Anda mesti menetapkannya dalam next.config.js. Versi baharu next.js menggunakan webpack5, yang menyokong menunggu peringkat teratas.
Perhatian
Anda mesti menggunakannya di luar komponen berfungsi:
13 item seterusnya
Tetapan yang sama digunakan untuk "seterusnya" dalam direktori "halaman" dan "apl": "^13.1.6" . (Oleh kerana ciri ini ialah ciri
webpack5
webpack5
, bukan ciri next.js) Anda boleh mengujinya menggunakan kod contoh berikut:AMARAN
Memandangkan ia adalah percubaan, ia mungkin rosak dalam beberapa versi