では 非同期処理や API データを想定した continue の実務例 を作ります。
実務シナリオ:API から取得したユーザーデータを条件に応じて処理
想定:
- API からユーザー配列を取得
- 条件に合わないユーザーはスキップして、処理可能なユーザーだけ処理
- 非同期処理なので
awaitを使う
// 擬似的なAPIデータ取得
async function fetchUsers() {
return [
{id:1, name:"Alice", active:true},
{id:2, name:"Bob", active:false},
{id:3, name:"", active:true},
{id:4, name:"Charlie", active:true}
];
}
// 擬似的に非同期でユーザー処理する関数
async function processUser(user) {
return new Promise(resolve => {
setTimeout(() => {
console.log(`処理完了: ${user.name}`);
resolve();
}, 500);
});
}
// メイン処理
async function main() {
const users = await fetchUsers();
for (const user of users) {
// 名前が空ならスキップ
if (!user.name) continue;
// 非アクティブユーザーはスキップ
if (!user.active) continue;
// 条件を満たすユーザーだけ処理
await processUser(user);
}
console.log("全ユーザー処理完了");
}
main();
JavaScript出力例(順序通りに表示される)
処理完了: Alice
処理完了: Charlie
全ユーザー処理完了
✅ ポイント:
- 非同期処理でも
continueは普通に使える - 「条件に合わないユーザーはスキップ → 条件を満たすユーザーだけ await 処理」のパターンは実務でよくある
- 配列を
.filter()で絞る方法もあるが、continueは「処理中に条件チェックしてスキップ」の直感的な書き方になる
応用:外側ループがある場合(部署ごと API データ取得)
const departments = [
{name:"営業部", api:fetchUsers},
{name:"開発部", api:fetchUsers}
];
async function mainDepartments() {
for (const dept of departments) {
console.log(`--- ${dept.name} 処理開始 ---`);
const users = await dept.api();
let hasValidUser = false;
for (const user of users) {
if (!user.name || !user.active) continue;
hasValidUser = true;
await processUser(user);
}
if (!hasValidUser) {
console.log(`${dept.name} に有効ユーザーなし、スキップ`);
continue; // 次の部署へ
}
}
console.log("全部署処理完了");
}
mainDepartments();
JavaScript✅ ポイント:
- 内側ループで条件チェック →
continueでスキップ - 部署単位で「有効ユーザーなし」の場合も
continueで外側ループを次に進める - 実務の API データ処理・バッチ処理・非同期バリデーションで使える
💡 実務的アドバイス:
- 非同期処理でも
continueは問題なく使える - 複雑な条件のときはガード節で順番に書くと可読性が高い
- 部署・グループ・カテゴリ単位でまとめてスキップしたい場合はフラグ + 外側
continueが便利
