を使用して API からデータを取得しようとし$.getJSON()
ましたが、問題が発生しました。取得できる呼び出しごとの最大結果は 50 です。ただしnextPageToken
、別のページからデータを取得するために API によって提供されます。while ループ (コードの下) では、null のときにループを中断したいのですnextPageToken
が、コールバック関数からそれを行うにはどうすればよいですか。フラグを設定しようとしましたが、それもうまくいかないことに気付きました。
nextPageToken
また、 $ .getJSON () が非同期で実行され、ループが中断されるため、 while ループは期待どおりに機能しないと思いますnull
。
要約: 1. 各ページからデータを取得したい。2. while ループを破る方法を知りたいです。
let nextPageToken = null;
let flag = 0;
function getAll(){
while(true){
let pyl = {
part: "snippet",
key: key,
nextPageToken: nextPageToken,
maxResults: 50,
playlistId: playlistId
}
$.getJSON(URL, pyl, pd=>{
console.log(pd);
arr.push(pd.nextPageToken);
nextPageToken = pd.nextPageToken;
// this is wrong
if(nextPageToken == null) {
flag = 1;
break; //This break statement is illegal
}
});
// This won't work too
if(flag==0) break;
}
}
getAll();