首页 >web前端 >js教程 >如何使用 Async/Await 修复 Babel 6 中的'regeneratorRuntime is not Defined”错误?

如何使用 Async/Await 修复 Babel 6 中的'regeneratorRuntime is not Defined”错误?

Patricia Arquette
Patricia Arquette原创
2024-12-03 08:46:09293浏览

How to Fix the

解决 Babel 6 Async/Await 的“regeneratorRuntime is not Defined”错误

当尝试在 Babel 6 中实现 async/await 功能时,开发人员可能会遇到“regeneratorRuntime 未定义”错误。这是因为,与 Babel 的更高版本不同,async/await 支持需要 Babel 6 中的 babel-polyfill 包。

解决方案:

  1. 安装babel-polyfill:

    npm i -D babel-polyfill
  2. 更新 package.json:

    "devDependencies": {
      "babel-polyfill": "^6.0.16",
    }
  3. 修改webpack配置(如果适用):
    在 webpack.config.js 中,确保 babel-polyfill 是条目数组中的第一个条目:

    module.exports = {
      entry: ['babel-polyfill', './test.js'],
      ...
    };
  4. 设置 babel -启动时的polyfill和babel-core文件:

    require("babel-core/register");
    require("babel-polyfill");

示例代码:

"use strict";

export default async function foo() {
  var s = await bar();
  console.log(s);
}

function bar() {
  return "bar";
}

使用 Babel 运行测试:

使用 Babel 运行测试时,请使用以下命令命令:

mocha --compilers js:babel-core/register --require babel-polyfill

以上是如何使用 Async/Await 修复 Babel 6 中的'regeneratorRuntime is not Defined”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn