Quelqu'un peut-il m'indiquer un exemple ou partager un extrait de code expliquant comment enchaîner plusieurs demandes, lorsque le résultat de la première demande doit être utilisé pour effectuer la deuxième demande, etc. ?
Vous pouvez enchaîner les résultats car ce sont des promesses régulières :
axios.get(...)
.then((response) => {
return axios.get(...); // using response.data
})
.then((response) => {
console.log('Response', response);
});
Dans cet exemple, response
revient comme indéfini même lorsque la requête aboutit ?
Non, il faut le définir. Faites attention à l'instruction return
. Vous l'avez probablement raté.
ouais
Et comment détecteriez-vous les erreurs individuelles dans ce cas ?
J'ai une boucle (pour) envoyer un message axios, et j'ai constaté que chaque demande n'a pas été envoyée après chaque boucle, elles ont été envoyées ensemble après la boucle
c'est mon code
`
pour (soit i = 0;i < différer;i++) {
tem.start = moment(start).add(i, 'days').format('YYYY-MM-DD')
tem.end = moment(tem.start).endOf('day').format('YYYY-MM-DD 23:59:59')
tem.date = tem.start
// si (V.hasSameValue(title, tem.start, tem.end))continue
V.addEventsToCalendar(tem)
}
addEventsToCalendar : (événement) => {
axios.post(requestUrl('calendrier'), {...événement})
.then(res => {
V.eventsRender(V.dataToEvent([res.data]))
successTip()
})
.catch(errorTip)
},
`
@Liaohuanle
Car est asynchrone, il n'attend pas la fin de chaque opération. Au lieu d'une boucle, vous pouvez utiliser une récursivité simple.
Pourquoi ne pas simplement essayer ceci ?
axios.get(...)
.then((response) => {
axios.get(...)
.then((response) => {
console.log('response);
})
})
@alejogamboa Encore un autre enfer de callback, qu'en pensez-vous ?
var array = [0,1,2];
axios.get('api/' + array[0]).then(response => {
axios.get('api/' + array[1]).then(response => {
axios.get('api/' + array[2]).then(response => {
alert('done');
});
});
});
comment puis-je le chaîner en fonction du tableau?
@jericopulvera jeter un oeil à l'utilisation
axios.all([])
for (...) {
arr.push(axios.get("url"));
}
let result = await axios.all(arr);
console.log(res);
J'ai déjà la solution ici #1413
Commentaire le plus utile
Vous pouvez enchaîner les résultats car ce sont des promesses régulières :