代码之家  ›  专栏  ›  技术社区  ›  dotchuZ

SAPUI5中的JavaScript/ESLint规则

  •  1
  • dotchuZ  · 技术社区  · 7 年前

    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); // <--
            });
    },
    

    enter image description here

    ESLint因以下规则而失败:

    • 使用“=>”的圆括号模式应该更换
    • “let”也应该被替换

    有人能帮忙吗?我试过一些方法,但根本不起作用:

    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);
            });
      });
    },
    

    谢谢 克里斯

    2 回复  |  直到 7 年前
        1
  •  1
  •   Jorg    7 年前

    => 或者箭头函数是创建匿名函数的捷径。它也是一种将当前作用域绑定到函数的方法,而不必显式地添加 .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);
            });
      });
    
        2
  •  -1
  •   Oleksii    7 年前

    我替换了 function arrow function 过时的 var let 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);
            });
      });
    },