Axios: Beispiel für das Verketten mehrerer Anfragen?

Erstellt am 15. Feb. 2017  ·  12Kommentare  ·  Quelle: axios/axios

Kann mir jemand ein Beispiel zeigen oder ein Code-Snippet teilen, wie man mehrere Anfragen verkettet, wenn das Ergebnis der ersten Anfrage verwendet werden muss, um die zweite Anfrage zu stellen, etc.?

Hilfreichster Kommentar

Sie können die Ergebnisse verketten, da es sich um regelmäßige Versprechen handelt:

axios.get(...)
  .then((response) => {
    return axios.get(...); // using response.data
  })
  .then((response) => {
    console.log('Response', response);
  });

Alle 12 Kommentare

Sie können die Ergebnisse verketten, da es sich um regelmäßige Versprechen handelt:

axios.get(...)
  .then((response) => {
    return axios.get(...); // using response.data
  })
  .then((response) => {
    console.log('Response', response);
  });

In diesem Beispiel wird response als undefiniert zurückgegeben, selbst wenn die Anfrage erfolgreich ist?

Nein, es sollte definiert werden. Beachten Sie die return -Anweisung. Sie haben es wahrscheinlich verpasst.

ayyyyy

Und wie würden Sie in diesem Fall die einzelnen Fehler abfangen?

Ich habe eine Schleife (für), um Axios-Post zu senden, und ich habe festgestellt, dass nicht jede Anfrage nach jeder Schleife gesendet wurde, sie mussten zusammen gesendet werden, nachdem diese Schleife vorbei war
das ist mein Code

`
for (let i = 0;i < different;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
// if (V.hasSameValue(title, tem.start, tem.end)) Continue
V.addEventsToCalendar(tem)
}
addEventsToCalendar: (Ereignis) => {
axios.post(requestUrl('calendar'), {...event})
.then(res => {
V.eventsRender(V.dataToEvent([res.data]))
erfolgTipp()
})
.catch(Fehlertipp)
},

`

@Liaohuanle
Da es asynchron ist, wartet es nicht auf das Ende jeder Operation. Anstelle einer Schleife können Sie eine einfache Rekursion verwenden.

Warum versuchen Sie es nicht einfach?

axios.get(...)
  .then((response) => {
    axios.get(...)
   .then((response) => {
      console.log('response);
    })
})

@alejogamboa Noch eine Callback-Hölle, was denkst du?

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');
         });
    });
});

Wie verkette ich es basierend auf einem Array?

@jericopulvera sieh dir die Verwendung an
axios.all([])

for (...) {
  arr.push(axios.get("url"));
}

let result = await axios.all(arr);
console.log(res);

Habe hier schon die Lösung #1413

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen