在承诺链上使用 setTimeout
2022-08-30 02:29:36
在这里,我试图把我的头包裹在承诺中。在这里,在第一个请求中,我获取一组链接,在下一个请求中,我获取第一个链接的内容。但是我想在返回下一个承诺对象之前进行延迟。所以我在上面使用setTimeout。但是它给了我以下JSON错误(没有setTimeout(),它工作得很好
)
语法错误:JSON.parse:JSON 数据第 1 行第 1 列中的意外字符
我想知道为什么它失败了?
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);
});