前提
JavaScriptにてループ処理を行っています。
ループ1回目で実行回数は決まっておらず「各ループによって次のループをするかどうか」という処理を実装したいのですが、実装方法が分からず困っております。
実現したいこと
以下のような処理をループを用いて実装したいです。
必ず1回はAPIリクエストを送信し、2回目以降は「next_cursor」があったら次のループ、なかった時点でループ終了というイメージです。
該当のソースコード
JavaScript
1const userResponse = slackAccessor.requestUserList(); // 実行①(必ず行うリクエスト) 2let userInfo = userResponse.members; 3 4// response.response_metadata.next_cursorがあるまで「requestUserList()」を繰り返す 5if (userResponse.response_metadata.next_cursor) { // 実行①で「next_cursor」がなかったら実行しない 6 let response1 = slackAccessor.requestUserList(userResponse.response_metadata.next_cursor); // 実行②(実行①でnext_cursorがあったら) 7 let members = response1.members; 8 userInfo = userInfo.concat(members) 9 if (response1.response_metadata.next_cursor) { 10 let response2 = slackAccessor.requestUserList(response1.response_metadata.next_cursor); // 実行③(実行②でnext_cursorがあったら) 11 let members = response2.members; 12 userInfo = userInfo.concat(members) 13 if (response2.response_metadata.next_cursor) { 14 let response3 = slackAccessor.requestUserList(response2.response_metadata.next_cursor); // 実行③(実行②でnext_cursorがあったら) 15 let members = response3.members; 16 userInfo = userInfo.concat(members) 17 if (response3.response_metadata.next_cursor) { 18 let response4 = slackAccessor.requestUserList(response3.response_metadata.next_cursor); // 実行④(実行③でnext_cursorがあったら) 19 let members = response4.members; 20 userInfo = userInfo.concat(members) 21 } 22 // 以下「実行⑤」「実行⑥」... とnext_cursorがなくなるまで繰り返す 23 } 24 } 25}
最後に
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/03 02:47
2022/09/03 14:15