Atas permintaan, berikut adalah komentar yang disajikan sebagai jawaban:
Saya tidak yakin Anda benar-benar memahami fakta bahwa fungsi di JS adalah objek kelas satu, dan karenanya dapat disimpan sampai dibutuhkan, melewati waktu mereka dibuat.
Misalnya, Anda ingin menulis ke file, lalu cetak pesan log; jadi Anda memanggil fungsi "write ()" (atau apa pun) dan meneruskannya fungsi yang menampilkan pesan log (ini adalah fungsi callback yang ditangguhkan). "write ()" secara internal menyimpan referensi ke fungsi yang diberikan, mulai menulis ke file, dan mengatur panggilan baliknya sendiri untuk mengetahui kapan penulisan selesai. Kemudian kembali sebelum penulisan dilakukan; ketika itu, panggilan balik internal entah bagaimana disebut (ini adalah pekerjaan kerangka kerja yang mendasarinya - dalam kasus node.js, itu dilakukan dengan loop peristiwa), yang kemudian memanggil panggilan balik Anda yang mencetak pesan log.
Bagian "ditangguhkan" berarti bahwa fungsi panggilan balik Anda tidak langsung dipanggil; panggilan itu ditangguhkan sampai waktu yang tepat. Dalam kasus fungsi asinkron seperti banyak yang ada di node.js, panggilan balik yang diberikan umumnya dipanggil saat operasi selesai (atau terjadi kesalahan).
Sebagian besar barang async di node.js, tetapi di browser dengan misal jQuery, sebagian besar barang sebenarnya sinkron (kecuali, jelas, untuk permintaan AJAX). Karena fungsi kelas satu sangat berguna dalam JavaScript (terutama karena dukungan penutupan yang hebat), panggilan balik juga digunakan di mana-mana di browser, tetapi mereka tidak "ditangguhkan" untuk operasi sinkron (kecuali sejauh mereka tidak dipanggil segera oleh Anda, tetapi nanti dengan fungsi yang Anda panggil).
Fakta bahwa sistem yang mendasarinya adalah event-driven adalah ortogonal untuk penggunaan panggilan balik ditangguhkan; Anda dapat membayangkan versi node.js (sangat lambat) yang memulai utas untuk setiap operasi, dan kemudian memanggil panggilan balik yang diberikan saat utas selesai bekerja, tanpa menggunakan acara sama sekali. Tentu saja, ini adalah model yang mengerikan, tetapi menggambarkan maksud saya :-)
Deferred
? Apakah ini tentang sesuatu yang spesifik untuk Node.js?