Alguém pode me indicar um exemplo ou compartilhar um trecho de código de como encadear várias solicitações, quando o resultado da primeira solicitação deve ser usado para fazer a segunda solicitação etc.?
Você pode encadear os resultados, pois são promessas regulares:
axios.get(...)
.then((response) => {
return axios.get(...); // using response.data
})
.then((response) => {
console.log('Response', response);
});
Neste exemplo, response
volta como indefinido mesmo quando a solicitação é bem-sucedida?
Não, deve ser definido. Lembre-se da declaração return
. Você provavelmente perdeu.
aaaa
E como você detectaria os erros individuais neste caso?
Eu tenho um loop (for) para enviar axios post, e descobri que cada solicitação não foi enviada após cada loop, eles enviaram juntos após o loop
este é o meu código
`
for (seja i = 0;i < difere;i++) {
tem.start = momento(início).add(i, 'dias').format('AAAA-MM-DD')
tem.end = momento(tem.start).endOf('dia').format('AAAA-MM-DD 23:59:59')
tem.data = tem.início
// if (V.hasSameValue(título, tem.início, tem.fim))continua
V.addEventsToCalendar(tem)
}
addEventsToCalendar: (evento) => {
axios.post(requestUrl('calendar'), {...evento})
.then(res => {
V.eventsRender(V.dataToEvent([res.data]))
Dica de sucesso()
})
.catch(errorDica)
},
`
@Liaohuanle
Por ser assíncrono, não espera o final de cada operação. Em vez de loop, você pode usar recursão simples.
Por que não tentar isso?
axios.get(...)
.then((response) => {
axios.get(...)
.then((response) => {
console.log('response);
})
})
@alejogamboa Mais um inferno de callback, o que você acha?
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');
});
});
});
como faço para encadeá-lo com base na matriz?
@jericopulvera veja como usar
axios.all([])
for (...) {
arr.push(axios.get("url"));
}
let result = await axios.all(arr);
console.log(res);
Já tenho a solução aqui #1413
Comentários muito úteis
Você pode encadear os resultados, pois são promessas regulares: