このコードでは、1)ユーザーがオンラインかどうかを確認する2)わずかに異なるURLから情報を取得する、3)HTMLに両方を出力する必要があります。それはうまくいくが、一貫性がない。場合によっては、HTMLを出力するための関数を実行しているときに、最初の要求(オンラインかどうか)からのデータは定義されていません。現在、streamDataとuserDataはグローバルです。しかし、私はそれがなくても働くことができればいいと思う。両方のデータソースを一度に同じ場所で常に利用できるようにすることに問題があります。今範囲と注文AJAXコールバック
var getOnline = function(){
for (var i = 0; i < twitchFaves.length; i++) {
userName = twitchFaves[i];
streamAjaxOnline(userName);
}
}
var streamAjaxOnline = function(userName){
$.ajax({
type : 'GET',
url : "https://wind-bow.gomix.me/twitch-api/streams/" + userName,
dataType : 'jsonp',
success : function(twitchData) {
streamData = twitchData;
if (streamData.stream){
userAjaxOnline(userName);
}
}
});
}
var userAjaxOnline = function(userName){
$.ajax({
type : 'GET',
url : "https://wind-bow.gomix.me/twitch-api/users/" + userName,
dataType : 'jsonp',
success : function(twitchData) {
userData = twitchData;
displayTwitchOnline(streamData, userData);
}
});
}
そのコードは動作しません。複数の反復は、グローバルと非同期ロジックのために、お互いに歩いて行きます。 forループは非同期ロジックが終了するのを待つことはありません。 –