Promesa de búsqueda múltiple (secuencial)

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

Puedo trabajar con múltiples promesas, pero en este caso no puedo hacerPromise.all(), porque no tengo toda la URL, pero 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);

Respuestas a la pregunta(1)

Su respuesta a la pregunta