busca múltipla e seqüencial ()

Eu tenho que fazer uma sequência defetch() Promessa: tenho apenas 1 URL por vez, isso significa apenas 1fetch() promessa. Toda vez que eu recebo um json, este contém um URL para outro json, então eu tenho que criar outrofetch() promessa.

Sou capaz de trabalhar com várias promessas, mas neste caso não posso fazerPromise.all(), porque não tenho todo o URL, mas apenas um.

Este exemplo não funciona, tudo 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);