Tahap 3
Cara JavaScript Berjalan: Engine, Event Loop, Async
Satu thread, tapi tidak pernah macet. Pahami mesinnya dan kode async berhenti terasa seperti sihir.
Yang akan kamu pelajari
- Menjelaskan bagaimana V8 mengubah kodemu jadi kode yang berjalan
- Melacak call stack untuk sekumpulan pemanggilan function bersarang
- Memprediksi urutan output yang tepat dari campuran kode sinkron, timer, dan promise
- Menulis kode async dengan promise dan async/await, serta menangani kegagalannya dengan benar
- Mengenali dan memperbaiki kode yang memacetkan satu-satunya thread
Sebelum mulai
Pelajaran
- 01
Di dalam engine: parsing, bytecode, dan JIT
Apa yang dilakukan V8 pada file-mu dalam milidetik sebelum apa pun berjalan.
Baca 25 menit - 02
Memori: stack, heap, dan garbage collection
Di mana nilai-nilaimu sebenarnya tinggal, dan kenapa kamu hampir tidak pernah membebaskannya sendiri.
Baca 22 menit - 03
Call stack dan cara membaca stack trace
Tulisan merah di console itu sebuah peta. Belajar membacanya dan proses debug jadi jauh lebih cepat.
Baca 22 menit - 04
Event loop
Satu thread, sebuah queue, dan sebuah loop. Inti dari semua hal non-blocking yang dilakukan JavaScript.
Baca 30 menit - 05
Callback dan kenapa ia jadi menyiksa
Cara asli mengerjakan async, masalah bersarang yang ditimbulkannya, dan jebakan penanganan error-nya.
Baca 22 menit - 06
Promise
Sebuah object yang mewakili nilai yang belum kamu punya. State, chaining, dan cara menggabungkannya.
Baca 32 menit - 07
async dan await
Promise yang ditulis agar terbaca dari atas ke bawah — plus kesalahan berurutan padahal maksudnya paralel.
Baca 30 menit - 08
Microtask vs macrotask: memprediksi urutan output
Kenapa callback promise selalu menang dari setTimeout(0). Pertanyaan interview klasik, dijelaskan.
Baca 25 menit - 09
Iterator dan generator
Cara kerja for...of sebenarnya, dan function yang bisa berhenti di tengah jalan.
Baca 25 menit