гружу на файлообмен
Вопрос, можно ли эти 2 вызова расположить последовательно (пометил //XXX), как к примеру
[].map(/* */).filter(/* */)
Сейчас 2 проблемы
1. Потеря контекста, тк
readImg
возвращает строку, а не this
2. Как еще и передать туда аргумент
Через прототип только шаманить?
Стоит оно того?
Есть ли вариант проще
class UploaderClass {
constructor (apiKey) {
this.apiKey = apiKey;
}
readImg (imgPath, name) {
return fs.readFileSync(__dirname + imgPath + '/' + name, 'base64');
}
async upload (image) {
let err = false;
const response = await rp({
method: 'POST',
url: 'https://api.imgbb.com/1/upload?key=' + this.apiKey,
form: {
image: image
},
resolveWithFullResponse: true,
json: true
})
.catch(e => {
err = true;
console.log('FAILED - ' + 'sample');
})
return err ? null : response;
}
}
//...
let b64Str = Uploader.readImg(imgPath, dataObj[0].pathName);
let response = Uploader.upload(b64Str);
//XXX
Uploader.readImg(imgPath, dataObj[0].pathName).upload('result_from_last_call');
Вопрос скорее не для конкретной задачи, так как тут оно и в 2 вызова хорошо выглядит, а вообще при возникновении нужды
Промис?
Обсуждают сегодня