Operasi blocking berjalan secara sinkron dan menahan satu-satunya thread JavaScript sampai selesai — tidak ada hal lain yang bisa berjalan sementara itu. Operasi non-blocking memulai pekerjaan, langsung kembali, dan menyampaikan hasilnya kemudian melalui callback, Promise, atau event, sehingga thread tetap bebas mengerjakan hal lain.
Mengapa Node single-threaded tetapi non-blocking
JavaScript Anda berjalan di thread yang dikendalikan oleh . I/O (berkas, jaringan, DNS) didelegasikan ke , yang memakai fasilitas async OS dan sebuah kecil di baliknya. Selagi pekerjaan itu berlangsung di luar thread, event loop terus memproses callback lain. Ketika I/O selesai, callback-nya diantrikan dan dijalankan.
