Я использую igmur api для загрузки изображений.Я написал приложение в Node.js, используя Promises, async-await.(обратите внимание, что я довольно новичок в этих понятиях).
Кажется, мой код работает.Он загружает изображения в igmur.Но проблема в том, что обещание не будет решено.Пожалуйста, обратитесь к приведенному ниже коду.
router.post('/images/upload', async (req, res) => {
/* we would receive a request of file paths as array */
let filePaths = req.body.urls;
let multipleUpload = new Promise(async (resolve, reject) => {
let upload_len = filePaths.length,
upload_res = new Array();
for (let i = 0; i <= upload_len + 1; i++) {
let filePath = filePaths[i];
await imgur.upload(filePath, (error, result) => {
console.log(" A -> ");
if (upload_res.length === upload_len) {
console.log("******");
/* resolve promise after upload is complete */
resolve(upload_res)
} else if (result) {
/*push public_ids in an array */
console.log("OK")
upload_res.push(result.public_id);
} else if (error) {
console.log(error)
reject(error)
}
})
}
})
.then((result) => console.log(result))
.catch((error) => error)
let upload = await multipleUpload;
res.json({
'response': upload
})
})
Я следовал этому учебнику , в котором что-то похожее.