Я вызываю эту функцию, чтобы загрузить изображение в вызов API, а затем он вернет мне URL-адрес удаленного изображения.
hash_image = putImageOnCloud(id_kromeda, filename)
.then(
(value) => {
console.info('Immagine salvata in cloud: ' + value);
process.exit(6);
})
process.exit(5);
return hash_image;
но он выходит с кодом 5 без значения печати;
, поэтому мне нужно дождаться ответа на запрос.
Как я могу это сделать?
async function putImageOnCloud(id_kromeda, filename) {
filename = __dirname + '/../../public/images/' + filename;
console.info('Salvo l\'immagine ' + filename + ' nel cloud.');
let options = {
'method': 'POST',
'url': 'http://localhost/api/endpoint',
'headers': {},
formData: {
'file': {
'value': fs.createReadStream(filename),
'options': {
'filename': '__.jpg',
'contentType': null
}
}
}
};
request(options, function (error, response) {
console.info('Faccio la call..')
if (error) {
throw new Error(error);
process.exit(4);
}
console.info(response.body);
let risposta = JSON.parse(response.body);
/*
[
{
"file_url": "http://localhost/a6e10970-c492-42f7-bc0d-965d28be7d2b.jpg",
"_id": "a6e10970-c492-42f7-bc0d-965d28be7d2b.jpg"
}
]
*/
let image_cdn = risposta[0]._id; // file_url
console.info('[' + id_kromeda + '] Salvato immagine in cloud: ' + image_cdn);
return image_cdn;
});
}





Вы смотрели axios js npmjs.com/package/axios? Вместо использования запроса, axios лучше всего подходят для внешних асинхронных вызовов? Если вы в порядке, я могу предложить несколько вариантов