如何将Babel Polyfill用于承诺?

时间:2018-12-28 15:09:06

标签: axios es6-promise babel babel-polyfill

您好,我不熟悉使用Babel转换和填充代码以使其适用于Edge和IE等较旧的浏览器。我目前在为承诺填写代码时遇到问题。我签入Edge,收到的错误是:

  

创建的挂钩中出现错误:“ TypeError:对象不支持属性或   方法“最终”

所以问题出在我的Vue应用程序中的finally方法。在我的应用程序中,我正在使用Axios从API获取数据。

因此,我正在按照以下步骤操作:CLI指示下的https://babeljs.io/setup.html#installation。我的package.json文件当前如下所示:

{
    "name": "job-filtering",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1",
      "build": "babel src -d lib"
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
      "@babel/cli": "^7.2.3",
      "@babel/core": "^7.2.2",
      "@babel/plugin-transform-regenerator": "^7.0.0",
      "@babel/preset-env": "^7.2.3"
    },
    "dependencies": {
      "@babel/polyfill": "^7.2.5"
    }
}

和我的.babelrc文件如下:

{
    "presets": ["@babel/preset-env"],
    "plugins": ["@babel/plugin-transform-regenerator"]
}

,因此当我在命令行中使用npm run build时,它会尽其所能地编译我的代码,但不会像我的promise中那样填充诸如finally方法之类的东西。

我一直在努力寻找答案,但是似乎找不到任何我想要的东西。

我尝试添加:

import 'babel/polyfill';

到我的JS文件的顶部,但这会吐出一个错误。我知道允许Babel填充我的JS可能是我所缺少的东西,但是我似乎找不到解决方法。

1 个答案:

答案 0 :(得分:0)

"@babel/polyfill"'babel/polyfill'不同。

import "@babel/polyfill";可以解决。

或:

module.exports = {
  entry: ["@babel/polyfill", "./app/js"],
};

将始终适用于我的项目。

查看下面的链接以找到更多信息。 https://babeljs.io/docs/en/babel-polyfill