1

我想转换这种方法,以完全适用于 SAP WEB IDE 中的 ESLint 规则:

getBase64Promise: function (file) {
        return new Promise((resolve, reject) => {    // <-- 
            const reader = new FileReader();
            reader.readAsDataURL(file);
            reader.onload = () => {                  // <--
                let encoded = reader.result.replace("data:", "").replace(/^.*;base64,/, "");  // <--
                if ((encoded.length % 4) > 0) {
                    encoded += '='.repeat(4 - (encoded.length % 4));
                }
                resolve(encoded);
            };
            reader.onerror = error => reject(error); // <--
        });
},

在此处输入图像描述

ESLint 因以下规则而失败:

  • 应替换使用“=>”的括号模式
  • 也应该替换“让”

有人可以帮忙吗?我尝试了一些东西,但它根本不起作用:

getBase64Promise: function (file) { 
  return new Promise(function (resolve, reject) {
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload(function () {
            var encoded = reader.result.replace("data:", "").replace(/^.*;base64,/, "");
            if ((encoded.length % 4) > 0) {
                encoded += "=".repeat(4 - (encoded.length % 4));
            }
            resolve(encoded);
        });

        reader.onerror(function () {
            reject(reader.error);
        });
  });
},

谢谢克里斯

4

2 回答 2

1

or 箭头函数是创建匿名函数的=>捷径。这也是一种将当前作用域绑定到函数而无需显式添加.bind(this).

您可以通过更改它来相当容易地替换它:

(params) => {

function(params) {

所以像

getBase64Promise: function(file) { 
  return new Promise(function(resolve, reject) {
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload(function() {
            var encoded = reader.result.replace("data:", "").replace(/^.*;base64,/, "");
            if ((encoded.length % 4) > 0) {
                encoded += "=".repeat(4 - (encoded.length % 4));
            }
            resolve(encoded);
        });

        reader.onerror(function() {
            reject(reader.error);
        });
  });
于 2018-10-23T10:45:13.940 回答
-1

我替换functionarrow function并过时varletor const

getBase64Promise: (file) => { 
  return new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload(() => {
            let encoded = reader.result.replace("data:", "").replace(/^.*;base64,/, "");
            if ((encoded.length % 4) > 0) {
                encoded += "=".repeat(4 - (encoded.length % 4));
            }
            resolve(encoded);
        });

        reader.onerror(() => {
            reject(reader.error);
        });
  });
},
于 2018-10-23T08:03:36.717 回答