Rumah >hujung hadapan web >tutorial js >Mengapa Saya Mendapat \'regeneratorRuntime is not defined\' Apabila Menggunakan Async/Await dengan Babel 6?
"Babel 6 regeneratorRuntime tidak ditakrifkan" Diterangkan
Apabila melaksanakan async/menunggu dalam Babel 6, ralat "regeneratorRuntime tidak ditentukan" biasa timbul. Untuk membetulkan isu ini, seseorang mesti memasang dan memasukkan babel-polyfill tambahan.
Memasang Ketergantungan Babel
Untuk menggunakan async/menunggu, pasang kebergantungan ini:
npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader
Mengemas kini package.json
Tambah yang berikut pada "devDependencies":
"babel-polyfill": "^6.0.16"
Mengekalkan .babelrc
Kekalkan tetapan seperti sedia ada:
{ "presets": [ "es2015", "stage-0" ] }
Menyediakan Async/await**
Dayakan async/wait dalam kod anda:
"use strict"; export default async function foo() { var s = await bar(); console.log(s); } function bar() { return "bar"; }
Memuatkan Pakej Diperlukan
Dalam fail permulaan anda , sertakan:
require("babel-core/register"); require("babel-polyfill");
Pek Web Konfigurasi
Jika menggunakan webpack, pastikan babel-polyfill ialah entri pertama:
module.exports = { entry: ['babel-polyfill', './test.js'], output: { filename: 'bundle.js' }, module: { loaders: [ { test: /\.jsx?$/, loader: 'babel', } ] } };
Menguji dengan Babel
Jalankan ujian dengan Babel menggunakan:
mocha --compilers js:babel-core/register --require babel-polyfill
Atas ialah kandungan terperinci Mengapa Saya Mendapat \'regeneratorRuntime is not defined\' Apabila Menggunakan Async/Await dengan Babel 6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!