javascript angularjs json promise es6-promise

javascript - Promesa de búsqueda múltiple(secuencial)



angularjs json (1)

Puedes usar la recursividad

function fetchNextJson(json_url) { return fetch(json_url, { method: ''get'' }) .then(function(response) { return response.json(); }) .then(function(json) { results.push(json); return json.Pagination.NextPage.Href ? fetchNextJson(json.Pagination.NextPage.Href) : results }) .catch(function(err) { console.log(''error: '' + error); }); } var next_json_url = ''http://localhost:3000/one''; var results = []; fetchNextJson(json_url).then(function(res) { console.log(res) })

Tengo que hacer una secuencia de fetch() Promesa: solo tengo 1 url a la vez, esto significa solo 1 promesa fetch() . Cada vez que recibo un json, este contiene una url para otro json, así que tengo que hacer otra promesa fetch() .

Puedo trabajar con varias promesas, pero en este caso no puedo hacer Promise.all() , porque no tengo toda la URL, sino solo una.

Este ejemplo no funciona, todo se congela.

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