ES6`fetch未定义

Pab*_*blo 54 javascript ecmascript-6 babeljs

我正在用ES6和Babel建立一个网站.

在脚本文件中,我需要对服务器上的服务进行ajax调用.为此,我这样做:

fetch('url').then(
    response => response.json()
).then(
    supervisoryItems => doSomething(supervisoryItems)
)
Run Code Online (Sandbox Code Playgroud)

在谷歌浏览器中这很好用,但它不适用于Firefox或IE(我收到错误fetch is undefined).在Google上搜索我发现这应该解决它:

import promise from 'es6-promise'
promise.polyfill()
Run Code Online (Sandbox Code Playgroud)

可悲的是,它没有改变任何东西,我有同样的问题.有帮助吗?

小智 88

您需要将'isomorphic-fetch'模块添加到'package.json',然后导入它.

npm install --save isomorphic-fetch es6-promise
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中

import "isomorphic-fetch"
Run Code Online (Sandbox Code Playgroud)

请参阅https://www.npmjs.com/package/isomorphic-fetch

  • 顺便说一下,`import`语句区分大小写.(无法编辑一个字符.) (2认同)
  • 如果您使用的是Angular,则运行`npm install --save isomorphic-fetch es6-promise`,然后将`import“ isomorphic-fetch”粘贴到您的polyfills.ts文件中。 (2认同)

Tho*_*mas 15

我将使用以下两个cdn:

<script src="//cdn.jsdelivr.net/bluebird/3.5.0/bluebird.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.3/fetch.js"></script>
Run Code Online (Sandbox Code Playgroud)


小智 6

Babel-polyfill(http://babeljs.io/#polyfill)当前不在polyfill中包含提取。我当时想添加它。

但是可以使用https://github.com/github/fetch