여러 개의 JSON 요청을 동시에 실행 한 다음 오류 메시지 (404 등)를 반환하거나 완료 한 후에 만 함수를 수행하려고합니다. 여기까지 내가 지금까지 가지고 있지만, finished
함수는 두 요청 중 하나의 변수를 기억하지 않습니다. 어떤 아이디어?코드를 실행하기 전에 여러 비동기식 JSON 쿼리가 완료되기를 기다리는 중
function socialPosting(a_date,a_title,a_source,a_thumbnail,a_url) {
socialPosts[socialPosts.length] = {date: a_date, title: a_title, source: a_source, thumbnail: a_thumbnail, url: a_url};
//console.log(socialPosts[amount]);
//console.log(amount);
}
function finished(source) {
if (source == "Twitter") {
var Twitter = "True";
}
if (source == "YouTube") {
var YouTube = "True";
}
console.log(source); //diagnostics
console.log(Twitter); //diagnostics
console.log(YouTube); //diagnostics
if (Twitter == "True" && YouTube == "True") {
console.log(socialPosts[0]); //Should return after both requests are complete
}
}
$.getJSON('https://gdata.youtube.com/feeds/api/videos?author=google&max-results=5&v=2&alt=jsonc&orderby=published', function(data) {
for(var i=0; i<data.data.items.length; i++) { //for each YouTube video in the request
socialPosting(Date.parse(data.data.items[i].uploaded),data.data.items[i].title,"YouTube",data.data.items[i].thumbnail.hqDefault,'http://www.youtube.com/watch?v=' + data.data.items[i].id); //Add values of YouTube video to array
}
finished("YouTube");
});
$.getJSON("https://api.twitter.com/1/statuses/user_timeline/twitter.json?count=5&include_rts=1&callback=?", function(data) {
var amount = socialPosts.length;
for(var i=0; i<data.length; i++) {
socialPosting(Date.parse(data[i].created_at),data[i].text,"Twitter"); //Add values of YouTube video to array
}
finished("Twitter");
});
이 약속위한 것입니다 통해 JSON 요청에 오류 처리기를 추가합니다. – SLaks
나는 여기에있는 해결책이 내가 가지고있는 것에 더 가깝다는 것에 동의하지 않는다. – Sam
물론, 전체적인 문제 *는 같습니다. –