如何将这些箭头函数转换为常规函数以支持 IE?

How do i convert these arrow functions into regular functions to support IE?

我是 JavaScript 的新手,我不确定如何将这两个箭头函数转换为常规函数。如果有人可以转换它们并给我一个解释,那就太好了!

function getBase64(file) {
    try {
            return new Promise(resolve => {
    //var file = new File([filename], filepath);
    var reader = new FileReader();
    // Read file content on file loaded event
    reader.onload = function(event) {
            $window.setTimeout(()=>{
        resolve(reader.result.replace(/^data:.+;base64,/, ''));
            },250);
    };      
    reader.readAsDataURL(file); 
            });
    }
        catch (e)
            {
                console.log ("error "+ e);
            }
    }

(x,y,z) => w

变成...

function(x,y,z){ return w; }

() => { y; }

变成

function() { y; }

社区成员已经为您提供了将箭头函数转换为常规函数的建议。

所以我希望你现在知道如何手动完成它。

如果您有大量使用数百个箭头函数的代码,那么我建议尝试使用 Babel.js 将您的 ES6 代码转换为适用于 IE 浏览器的 ES5 代码。

对于大型代码,将箭头函数转换为常规函数将是最简单的方法。

使用 Babel 的转译代码示例:

"use strict";

function getBase64(file) {
  try {
    return new Promise(function (resolve) {
      //var file = new File([filename], filepath);
      var reader = new FileReader(); // Read file content on file loaded event

      reader.onload = function (event) {
        $window.setTimeout(function () {
          resolve(reader.result.replace(/^data:.+;base64,/, ''));
        }, 250);
      };

      reader.readAsDataURL(file);
    });
  } catch (e) {
    console.log("error " + e);
  }
}