Ich bin neu zu verwenden async/await
- Ich versuche, Daten von einem API-Aufruf zurückzugeben und formatieren Sie es leicht.So implementieren Sie richtig async/erwarten Sie
Ich bin wirklich schwer zu erarbeiten, wie dies funktioniert wegen der asynchronen Art der Funktionen. Ich kann das Versprechen nicht halten, ohne dass der Browser einfach umkippt.
Meine erste Funktion ruft die API auf und erhält eine Antwort als JSON. Ich speichere dann eine Teilmenge dieser Daten json.recommendations
function getRecs() {
const requestUrl = `blahblah`;
const options = {
headers: {
'Content-type': 'application/json',
Accept: 'application/json',
},
method: 'GET',
};
fetch(requestUrl, options).then((res) => {
if (res.ok) {
return res.json();
}
throw new Error('Error!!??', res);
}).then((json) => {
return json.recommendations;
});
}
Meine zweite Funktion nimmt json.recommendations
und hat einige Aufräumen unerwünschte Daten zu löschen und eine neue Reihe von Daten zurückgeben, diejenigen, die meine Filter entsprechen.
async function getInStockRecs() {
const recs = await getRecs();
if (recs !== undefined) {
return recs.filter(function(rec){
return rec.isInStock === true;
});
}
}
Eine dritte Funktion formatiert die Daten weiter:
async function topThreeArray() {
const inStockRecs = await getInStockRecs();
const topThree =[];
for (let i = 0; i < i <= 3; i++) {
topThree.push(inStockRecs[0]);
}
return topThree;
}
Durch Verwendung await
I jede Funktion sollte nur dann ausgeführt, wenn die Daten korrekt aus dem vorherigen zurückgegeben wurden. Das Ausführen der obigen Anweisungen stürzt jedoch die Seite ab und ich kann nichts tun, um zu debuggen, da es einfach abstürzt. Wo gehe ich falsch?