J'ai écrit le code suivant pour télécharger des fichiers sur le serveur de manière asynchrone à l'aide de promesses. Et nous savons que cette promesse. Tout échouera une fois que quelqu'un des promesses échouera. Donc, je veux savoir quelle promesse est réellement échouée et dans mon cas le nom du fichier pour lequel la promesse a échoué. J'essaye console.log (e1) mais il ne me donne pas l'information au sujet de la promesse échouée. Quelqu'un peut-il m'aider s'il vous plaît?Comment obtenir la promesse rejetée de promise.all?
uploadFilesAndSendStatus(stateType, notes, estimate, visibleToCustomer = null)
{
let filesPromise = Promise.resolve([]);
const promises = this.state.files_to_upload.map((file) => {
return this.uploadFilesOnServer(file);
});
filesPromise = Promise.all(promises).then((results) => {
return [].concat(...results);
}).catch((e1) =>{
console.log(e1);
this.setState({
serverActionPending: false,
serverActionComplete: false,
file_upload_try_again: true,
});
});
}
code UploadFilesOnServer est:
uploadFilesOnServer(file) {
let files=[];
let file_id='';
const image=file;
const promise = getAttachmentUploadURL(this.props.task.id)
.then((imageUrlResponse) => {
const data = new FormData();
data.append('file-0', image);
const { upload_url } = JSON.parse(imageUrlResponse);
return uploadAttachment(upload_url, data);
})
.then ((updateImageResponse) => {
file_id= JSON.parse(updateImageResponse);
files.push(file_id);
return files;
});
return promise;
}
pourrait-il être une solution: http://bluebirdjs.com/docs/ api/reflect.html – frulo
Je ne pense pas que vous voulez 'JSON.parse' le' e1' – Bergi
Ouais. Édité. @Bergi Mais je ne peux toujours pas obtenir les informations requises. – HamidArrivy