Saya menonton ekspres baru-baru ini, dan saya melihat di mana-mana penggunaan fungsi panggil balik yang mengambil fungsi sebagai parameter. Jika anda tidak memahami konsep ini, kod nodejs dan express akan menjadi kucar-kacir. Contohnya:
Ini akan mengeluarkan 5.
Fungsi panggil balik diletakkan dalam senarai parameter fungsi lain (seperti induk), diserahkan kepada induk ini sebagai parameter, dan kemudian dilaksanakan di suatu tempat dalam badan fungsi induk. Ia abstrak, mari kita lihat contoh:
Fungsi doit dipanggil di bawah. Perlu diingatkan bahawa apabila doit ditakrifkan sebentar tadi, panggilan balik tidak ditakrifkan, jadi saya tidak tahu apa panggilan balik digunakan. Ini sebenarnya mudah difahami Apabila kita biasanya mentakrifkan fungsi, parameter hanya diberi nama, seperti a, dan a digunakan dalam badan fungsi, tetapi keseluruhan proses tidak tahu apa itu hanya apabila memanggilnya fungsi Hanya kemudian nyatakan nilai khusus a, seperti 2. Mengimbas kembali, apabila memanggil doit, kita perlu menentukan apakah panggilan balik. Seperti yang anda lihat, fungsi ini melengkapkan fungsi jumlah.
Proses pelaksanaan kod di atas ialah:
Panggil fungsi doit, parameter ialah fungsi tanpa nama, masukkan badan fungsi doit, mula-mula tentukan a, b, c, dan kemudian laksanakan fungsi tanpa nama tadi, parameternya ialah a, b, c dan kembalikan a t, dan akhirnya kembali A t 10 memberikan d.
Kembali kepada contoh asal, app.use(...) ialah panggilan fungsi. Kita boleh membayangkan bahawa kaedah penggunaan mesti telah ditakrifkan sebelum ini, tetapi ia tidak diberikan di sini. Sebaik sahaja anda membandingkan kedua-dua contoh ini, anda boleh memahaminya dengan segera.
Apabila menggunakan nodej dan ekspres, adalah mustahil untuk kita mencari definisi fungsi bagi setiap kaedah atau fungsi dan melihatnya. Jadi hanya tahu parameter apa yang dihantar ke panggil balik dalam definisi itu. Kemudian apabila memanggil kaedah atau fungsi, kami menentukan sendiri fungsi tanpa nama dalam parameter untuk melengkapkan fungsi tertentu.
Tamat!