এখানে আমি প্রতিশ্রুতিগুলি ঘিরে আমার মাথা মোড়ানোর চেষ্টা করছি first প্রথম অনুরোধে এখানে আমি লিঙ্কগুলির একটি সেট আনছি next এবং পরবর্তী অনুরোধে আমি প্রথম লিঙ্কটির সামগ্রী আনব ut তবে পরবর্তী প্রতিশ্রুতি অবজেক্টটি ফেরার আগে আমি বিলম্ব করতে চাই o তাই আমি ব্যবহার করি এটিতে সেটটাইমআউট.কিন্তু এটি আমাকে নীচের জেএসওন ত্রুটি দেয় ( without setTimeout() it works just fine)
সিনট্যাক্সেরর: 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);
});
globalObj।
JSON.parseফেলে দেয়? আমি বিশ্বাস setTimeoutকরতে thenঅসুবিধে হয়েছি যে একটিতে একটি কলব্যাক পূর্ববর্তী thenকলব্যাকের কলকে প্রভাবিত করে ।
returnফাংশন নির্দিষ্ট, এবং শুধুমাত্র প্যারেন্ট ফাংশন ফিরে, এবং আপনি একটি async পদ্ধতি থেকে ফিরে আসতে পারবেন না।