Ich muss eine Sequenz von fetch()
machen Versprechen: Ich habe nur 1 URL zu einer Zeit, das bedeutet nur 1 fetch()
versprechen. Jedes Mal, wenn ich einen JSON erhalte, enthält dieser eine URL für einen anderen JSON, also muss ich einen weiteren fetch()
versprechen.mehrere, sequentielle fetch() Promise
Ich kann mit mehreren Versprechen arbeiten, aber in diesem Fall kann ich Promise.all()
nicht tun, weil ich nicht die ganze URL, sondern nur eine.
Dieses Beispiel funktioniert nicht, es friert alles ein.
function fetchNextJson(json_url)
{
return fetch(json_url, {
method: 'get'
})
.then(function(response) {
return response.json();
})
.then(function(json) {
console.log(json);
return json;
})
.catch(function(err) {
console.log('error: ' + error);
});
}
function getItems(next_json_url)
{
if (!(next_json_url)) return;
get_items = fetchNextJson(next_json_url);
interval = $q.when(get_items).then(function(response) {
console.log(response);
next_json_url = response.Pagination.NextPage.Href;
});
getItems(next_json_url);
}
var next_json_url = 'http://localhost:3000/one';
getItems(next_json_url);
Was Verhalten und übergeordnete Ziel erwartet? – charlietfl
Wie viele Gesamtanforderungen werden voraussichtlich verarbeitet? '$ q.when()' scheint nicht notwendig zu sein. Warum rufen Sie 'getItems (next_json_url)' außerhalb von '.then()' innerhalb von 'getItems()' call auf? – guest271314
Was ist der Basisfall? Wann hörst du auf, Daten zu holen? –