использование setTimeout в цепочке обещаний

Здесь я пытаюсь обернуть голову вокруг обещаний. Здесь при первом запросе я получаю набор ссылок. И при следующем запросе я получаю содержимое первой ссылки. Но я хочу сделать задержку перед возвратом следующего объекта обещания. Так что я использую setTimeout на нем. Но это дает мне следующую ошибку JSON (without setTimeout() it works just fine)

SyntaxError: JSON.parse: неожиданный символ в строке 1 столбца 1 данных JSON

Я хотел бы знать, почему это не удается?

let globalObj={};
function getLinks(url){
    return new Promise(function(resolve,reject){

       let http = new XMLHttpRequest();
       http.onreadystatechange = function(){
            if(http.readyState == 4){
              if(http.status == 200){
                resolve(http.response);
              }else{
                reject(new Error());
              }
            }           
       }
       http.open("GET",url,true);
       http.send();
    });
}

getLinks('links.txt').then(function(links){
    let all_links = (JSON.parse(links));
    globalObj=all_links;

    return getLinks(globalObj["one"]+".txt");

}).then(function(topic){


    writeToBody(topic);
    setTimeout(function(){
         return getLinks(globalObj["two"]+".txt"); // without setTimeout it works fine 
         },1000);
});

Ответы на вопрос(4)

Ваш ответ на вопрос