Ich habe folgenden Code für das Hochladen von Dateien auf dem Server asynchron mit Hilfe von Versprechen geschrieben. Und wir kennen dieses Versprechen. Alles wird scheitern, sobald jemand von den Versprechen versagt. Also möchte ich wissen, welches Versprechen tatsächlich fehlgeschlagen ist und in meinem Fall der Name der Datei, für die das Versprechen fehlgeschlagen ist. Ich versuche console.log (e1), aber es gibt mir keine Informationen über fehlgeschlagene Versprechen. Kann mir bitte jemand helfen?Wie man das Versprechen von promise.all abgelehnt bekommt?
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,
});
});
}
UploadFilesOnServer Code ist:
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;
}
, dass eine Lösung sein könnte: http://bluebirdjs.com/docs/ api/reflect.html – frulo
Ich glaube nicht, dass Sie 'JSON.parse' die' e1' – Bergi
Yeah wollen. Bearbeitet. @Bergi Aber ich kann immer noch nicht die erforderlichen Informationen erhalten. – HamidArrivy