私は Instagram API を使用しようとしていますが、next_url が null になるまで do-while ループで AJAX リクエストを作成しています。このコードでやりたいことは、完了するまで継続的にリクエストを行ってすべてのフォロワーを取得することだけです。このコードのどこが間違っていますか?
do-while ループを削除してもエラーは発生しませんが、ループ内で AJAX リクエストを使用するとすぐに停止しません。明らかに、$next_url
文字列は新しくフェッチされたものに変更されていませんnext_url
-なぜですか? なにが問題ですか?
$(document).ready(function(e) {
$('#fetch_followers').click(function(e) {
var $next_url = 'https://api.instagram.com/v1/users/{user-id}/followed-by?access_token={access-token}&count=100';
var $access_token = '{access-token}';
var $is_busy = false;
var $count = 0;
do {
while($is_busy) {}
$.ajax({
method: "GET",
url: $next_url,
dataType: "jsonp",
jsonp : "callback",
jsonpCallback: "jsonpcallback",
success: function(data) {
$is_busy = true;
$.each(data.data, function(i, item) {
$("#log").val($("#log").val() + item.id + '\n');
});
$("#log").val($("#log").val() + data.pagination.next_url + '\n');
$next_url = data.pagination.next_url;
},
error: function(jqXHR, textStatus, errorThrown) {
$is_busy = true;
//alert("Check you internet Connection");
$("#log").val($("#log").val() + 'Error\n');
},
complete: function() {
++$count;
$is_busy = false;
}
});
} while($next_url !== '' || $count <= 50);
});
});
ロジックに失敗した後$count
、do-while ループが無限に実行されていたため、do-while ループを中断できる変数を追加しました。追加した後も無限に実行されますが、その理由はわかりません。