Babel 不转换 fetch api 代码

The*_*tar 7 html javascript es6-promise fetch-api

fetch api 非常有用,但不幸的是它不适用于大多数浏览器,尤其是 Internet Explorer。我尝试使用 babel 将我的代码从 es6 转换为 es5,但它没有解决这个问题。转换成es5的时候还是包含fetch的。我怎样才能解决这个问题。这是es6代码:

var btnText = document.getElementById('btnText');
var btnJson = document.getElementById('btnJson');
btnText.addEventListener("click",fetchBtnText);
function fetchBtnText() {
  fetch("sample.txt")
    .then((response) => response.text())
.then((data) => console.log(data))
}
Run Code Online (Sandbox Code Playgroud)

这是到es5的转换

'use strict';
var btnText = document.getElementById('btnText');
var btnJson = document.getElementById('btnJson');
btnText.addEventListener("click", fetchBtnText);
function fetchBtnText() {
  fetch("sample.txt").then(function (response) {
    return response.text();
  }).then(function (data) {
    return console.log(data);
  });
}
Run Code Online (Sandbox Code Playgroud)

TKo*_*KoL 6

你可以使用一个polyfill,像这样 https://github.com/github/fetch

  • @StukedCoder Babel “主要用于将 ECMAScript 2015+ 代码转换为当前和旧版本浏览器或环境中向后兼容的 JavaScript 版本”,如其[主页](https://babeljs.io/docs/en/)所述Fetch API 不是 ECMAScript/javascript 语言规范的一部分,而是 Web API 的一部分。有关更多详细信息,请参阅[此处](/sf/ask/3084110851/)。 (13认同)