JavaScript / SAPUI5 中的 ESLint 规则
JavaScript / ESLint Rules in SAPUI5
我想改造这个方法,完全适用于SAP WEB中的ESLint规则IDE:
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 因这些规则而失败:
- 应替换使用“=>”的括号模式
- 也"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);
});
});
},
谢谢
克里斯
我将 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);
});
});
},
=>
或箭头函数是创建匿名函数的捷径。这也是一种将当前作用域绑定到函数而无需显式添加 .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);
});
});
我想改造这个方法,完全适用于SAP WEB中的ESLint规则IDE:
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 因这些规则而失败:
- 应替换使用“=>”的括号模式
- 也"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);
});
});
},
谢谢 克里斯
我将 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);
});
});
},
=>
或箭头函数是创建匿名函数的捷径。这也是一种将当前作用域绑定到函数而无需显式添加 .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);
});
});