Я хочу преобразовать этот метод, чтобы полностью применить правила ESLint в SAP WEB 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 не справляется с этими правилами:
Может ли кто-нибудь помочь? Я пробовал некоторые вещи, но он не работает вообще:
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);
});
});
},
Спасибо Крису
Функция =>
или стрелка - это короткий отрезок для создания анонимной функции. Это также способ привязки текущей области к функции без явного добавления .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);
});
});
Я заменил function
на 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);
});
});
},