AI活用の教科書
バックエンドふつう3分で読了

コールバック

callbackこーるばっく

ひとことで言うと

「処理が終わったら呼んでね」と先に渡しておく関数のこと。

📖 もうちょい詳しく

何が新しいの?

コールバックは、プログラムの中で「あとでこの処理を呼んでね」と、関数そのものを別の関数に渡しておくしくみです。プログラムは上から順番に動くのが基本ですが、時間のかかる処理を待っている間も止まりたくない場面があります。そんなときに、終わったタイミングで呼んでもらう約束として登場します。

どうやって動いてるの?

たとえばデータを読み込む処理に、コールバックの関数を一緒に渡しておきます。読み込みが終わると、システムがそのタイミングであなたの渡した関数を呼び出してくれます。呼ぶのは自分ではなく相手側で、しかも「終わったとき」という条件付きです。だから「呼び戻す(コールバック)」という名前がついています。

何ができるの?

時間のかかる処理を待つ間も、ほかの作業を止めずに進められます。ファイルの読み込み、通信の応答待ち、ボタンが押された瞬間の反応など、「いつ終わるか分からないこと」をうまくさばけます。とくに非同期処理(待ち時間のある処理)とセットでよく出てきます。

🌱 身近なたとえ

レストランの呼び出しベルで例えると分かりやすいです。料理を注文したあと、出来上がるまで席で立って待つ必要はありません。番号札やベルを渡しておけば、料理ができた瞬間に店員さんが呼んでくれます。この「できたら呼んでね」の約束がコールバックで、ベルを渡しておくおかげで、待っている間にメニューを眺めたり会話したりできます。

✅ まず覚えるポイント

  • コールバックは「あとで呼んでもらう関数」のこと。
  • 自分で呼ぶのではなく、相手(システム)が呼んでくれる。
  • 「処理が終わったとき」など、決まったタイミングで呼ばれる。
  • 非同期処理(待ち時間のある処理)でよく登場する。
  • 待っている間も、ほかの処理を止めずに進められる。

🧭 よくある勘違い

コールバックを渡したらすぐ実行されるの?

渡した時点では実行されません。渡すのは「実行する関数そのもの」で、実際に呼ばれるのは相手側の処理が終わったあとです。渡す=予約、呼ばれる=実行、と分けて考えると整理しやすくなります。

非同期じゃないと使えないの?

そんなことはありません。たとえばリストの一つひとつに同じ処理を当てる場面でも、コールバックを渡す書き方をよく使います。「関数を引数として渡す」考え方そのものなので、待ち時間がない場面でも登場します。

コールバックは古くて使われないの?

基本の考え方は今も現役です。ただ、コールバックを何重にも入れ子にすると読みにくくなるため、後から登場したPromiseなどのしくみで書きやすく整理されることが増えました。

🧩 関連して覚えると楽な言葉

  • 非同期処理: 終わるのを待たずに次へ進める処理の進め方。
  • Promise: 「あとで結果を返す」約束を扱う、コールバックを整理したしくみ。
  • Pub/Sub: 出来事の通知を、間に立つ仲介役から多数の受け手へ配る方式。
  • API: プログラム同士が機能をやり取りする窓口。

🏁 ひとことでまとめ

コールバックは、相手に先に預けておく「終わったら呼んでね」の関数です。