Rumah  >  Artikel  >  hujung hadapan web  >  Secara Eksplisit Mengelakkan Neraka Panggilan Balik

Secara Eksplisit Mengelakkan Neraka Panggilan Balik

PHPz
PHPzasal
2024-08-29 11:37:02956semak imbas

Pengaturcaraan tak segerak ialah salah satu kekuatan utama JavaScript, terutamanya dalam Node.js; walau bagaimanapun, disebabkan pengasingan kebimbangan yang perlu, berbilang operasi tak segerak sering dilakukan melalui panggilan balik, dan ini boleh membawa kepada apa yang dikenali sebagai "neraka panggil balik." Sebagai contoh, pertimbangkan situasi di mana kami bekerja dengan panggilan balik bersarang dalam kod JavaScript kami dan mari lihat cara kami boleh memfaktorkannya semula menggunakan Janji dan struktur async/menunggu.

Neraka Panggilan Balik: Satu Contoh

Mari kita mulakan dengan beberapa kod yang menggunakan panggilan balik untuk mengendalikan operasi fail bagi sistem pengurusan produk yang ringkas:

Explicitly Avoiding Callback Hell

Di sini, kami mempunyai beberapa panggilan balik yang bersarang baik untuk dibaca dan ditulis pada fail. Ini mungkin salah satu contoh yang anda akan tulis apabila anda berada jauh di dalam neraka panggil balik. Akhir sekali, dengan bilangan operasi tak segerak yang lebih banyak, kod akan berkembang begitu juga dengan jumlah lekukan yang menjadikannya lebih sukar untuk dibaca. Dalam kaedah save(), fungsi fs.readFile membaca fail, dan kemudian panggil baliknya menghuraikan kandungan dan menggunakan fungsi fs.writeFile untuk menulis semula kandungan fail yang dilakukan dalam panggilan balik yang lain. Tahap bersarang sedemikian menjadikan kod itu menyerupai apa yang dirujuk sebagai "piramid azab".

Beralih ke Janji dan Async/Await

Untuk mengelakkan panggilan balik neraka ini, terdapat janji JavaScript dan sintaks async/menunggu yang menjadikan kod lebih mudah dibaca, terurus dan mesra debugging.
Berikut ialah versi yang dipertingkatkan:

Explicitly Avoiding Callback Hell

Mengapa Janji dan Async/Menunggu?

Janji membantu dengan mendayakan pengurusan operasi tak segerak secara linear dan dengan bilangan struktur bersarang paling sedikit. Corak async/wait meningkatkan kebolehbacaan kod dan juga menangani operasi tak segerak dengan cara yang kelihatan lebih dekat dengan operasi segerak. Menggunakan blok cuba dan tangkap secara khusus, pemprosesan ralat menjadi lebih telus dan lebih mudah difahami yang menyumbang kepada kebolehselenggaraan kod.

Kesimpulan

Neraka panggilan balik boleh menjadi masalah sebenar semasa menulis kod dengan cara yang bersih dalam JavaScript, terutamanya dalam Node.js. Dengan bantuan Janji dan async/menunggu, adalah mungkin untuk menukar neraka panggilan balik yang bersarang banyak kepada kod linear bersih pada masa yang sama menjadikannya lebih mudah untuk menangani ralat. Ia bukan sahaja mengubah kod anda untuk kelihatan lebih baik tetapi juga menetapkan anda di landasan yang betul untuk menjadi pengaturcara JavaScript yang lebih baik.

Atas ialah kandungan terperinci Secara Eksplisit Mengelakkan Neraka Panggilan Balik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn