Je me présente plusieurs requêtes ajax en utilisant jQuery dans un Promise.all:Accès erreur ajax jQuery des prises Promise.all
const firstFetchPromise = $.ajax({ url: '/some/url' });
const secondFetchPromise = $.ajax({ url: '/another/url' });
Promise.all([ firstFetchPromise, secondFetchPromise ])
.then(results => storeResults(results))
.catch(e => {
console.log(e); // e is a promise, how to get the ajax error?
});
Pour tester la gestion des erreurs que je arrêter le serveur que les demandes ajax obtiennent leurs données à partir de et le navigateur enregistre un ERR_CONNECTION_REFUSE avec l'URL.
Les journaux de déclaration de capture quelque chose qui ressemble à une promesse:
abort:ƒ (a),
always:ƒ(),
complete:ƒ(),
done:ƒ(),
error:ƒ(),
fail:ƒ(),
getAllResponseHeaders:ƒ(),
getResponseHeader:ƒ (a),
overrideMimeType:ƒ (a),
pipe:ƒ(),
progress:ƒ(),
promise:ƒ (a),
readyState:0,
responseText:"",
setRequestHeader:ƒ (a,b),
state:ƒ(),
status:0,
statusCode:ƒ (a),
statusText:"error",
success:ƒ(),
then:ƒ(),
Comment puis-je obtenir l'erreur ajax qui est dans la promesse que je peux afficher un message d'erreur lisible dans la page Web?
'e est un promise' - il ne devrait pas être - que journal de la console que vous avez montré ne ressemble pas du tout comme une promesse (getResponseHeader, getAllResponseHeaders , setRequestHeader, overrideMimeType tous ressemblent à des méthodes XHR) –
Cela pourrait très bien être le cas, je suis nouveau pour les promesses, plus habitué aux rappels. J'ai mis à jour la question avec l'objet complet. Je m'attendais à ce qu'il y ait un message d'erreur lié au réseau. L'objet comme les clés promettent, puis, échouent etc, donc j'ai pensé que c'était une promesse. – user3381520