Burada sözlerin etrafına sarılmaya çalışıyorum. Burada ilk talepte bir dizi bağlantı getiriyorum ve bir sonraki talepte ilk bağlantının içeriğini alıyorum.Ama bir sonraki söz nesnesini geri vermeden önce bir gecikme yapmak istiyorum. setTimeout üzerinde.Ama bana şu JSON hatasını veriyor ( without setTimeout() it works just fine
)
Sözdizimi Hatası: JSON.parse: JSON verilerinin 1. satırındaki 1. sütunda beklenmeyen karakter
neden başarısız olduğunu bilmek isterim?
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);
});
globalObj
.
JSON.parse
atıyor? setTimeout
Bir then
geri aramanın olup olmadığının önceki then
geri aramadaki aramayı etkilediğine inanmakta zorlanıyorum .
return
işleve özgü olduğunu ve yalnızca ana işleve döndüğünü ve zaman uyumsuz bir yöntemden dönemeyeceğinizi unutmayın.