NodeJS ialah persekitaran masa jalan JavaScript bahagian pelayan yang sangat berkuasa yang membolehkan kami membangunkan aplikasi bahagian belakang menggunakan JavaScript, yang menjadikan NodeJS kemahiran yang sangat berguna untuk pembangun bahagian hadapan.
Apabila membangunkan aplikasi menggunakan NodeJS, biasanya kita perlu menggunakan fungsi yang berbeza dalam antara muka yang sama. NodeJS menyediakan pelbagai cara untuk mencapai ini, dan kami akan memperkenalkan beberapa daripadanya di bawah.
Fungsi panggil balik ialah cara yang paling biasa digunakan dalam NodeJS untuk memanggil fungsi yang berbeza dalam antara muka yang sama. Fungsi panggil balik sebenarnya adalah fungsi yang diluluskan sebagai parameter fungsi lain Selepas fungsi pertama selesai, fungsi kedua akan dipanggil.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi yang berbeza dalam antara muka yang sama:
function firstFunction(callback) { setTimeout(function () { console.log("执行第一个函数"); callback(); }, 1000); } function secondFunction() { console.log("执行第二个函数"); } firstFunction(secondFunction);
Dalam contoh ini, fungsi firstFunction menerima fungsi panggil balik sebagai parameter Apabila yang pertama Selepas fungsi pertama selesai, fungsi kedua akan dipanggil.
Promise ialah teknologi yang menyelesaikan masalah pengaturcaraan tak segerak Ia boleh digunakan untuk melaksanakan fungsi yang berbeza dalam antara muka yang sama. Promise membolehkan kami mengendalikan operasi tak segerak dengan lebih elegan Ia membungkus operasi tak segerak ke dalam objek dan melaksanakan pelaksanaan berurutan operasi tak segerak melalui panggilan berantai.
Berikut ialah contoh penggunaan Promise:
function firstFunction() { return new Promise(function (resolve, reject) { setTimeout(function () { console.log("执行第一个函数"); resolve(); }, 1000); }); } function secondFunction() { console.log("执行第二个函数"); } firstFunction().then(secondFunction);
Dalam contoh ini, firstFunction mengembalikan objek Promise Dalam objek Promise, kami membungkus operasi tak segerak ke dalam fungsi. Selepas fungsi pertama selesai, kaedah penyelesaian dipanggil, yang menunjukkan bahawa operasi tak segerak telah selesai. Kemudian, kami memanggil kaedah kemudian dalam fungsi kedua untuk mencapai pelaksanaan berurutan operasi tak segerak melalui panggilan berantai.
async/wait ialah ciri baharu yang diperkenalkan dalam ES2017, yang boleh menjadikan kod operasi tak segerak kelihatan lebih seperti kod segerak. Menggunakan async/wait membolehkan kami melaksanakan fungsi yang berbeza dalam antara muka yang sama dengan lebih mudah.
Berikut ialah contoh penggunaan tak segerak/menunggu:
function firstFunction() { return new Promise(function (resolve, reject) { setTimeout(function () { console.log("执行第一个函数"); resolve(); }, 1000); }); } function secondFunction() { console.log("执行第二个函数"); } async function run() { await firstFunction(); secondFunction(); } run();
Dalam contoh ini, kami mentakrifkan fungsi tak segerak bernama run, yang menggunakan kata kunci tak segerak untuk mengisytiharkan bahawa ia adalah fungsi tak segerak, dan kemudian kami menggunakan kata kunci await di dalam fungsi untuk menunggu fungsi tak segerak selesai. Dalam contoh ini, kita menunggu fungsi pertama selesai sebelum melaksanakan fungsi kedua.
Ringkasan
Melalui fungsi panggil balik, Janji dan async/menunggu, kami boleh melaksanakan fungsi yang berbeza dalam antara muka yang sama. Setiap kaedah mempunyai kelebihan dan kekurangannya sendiri, dan kita boleh memilih salah satu daripadanya mengikut situasi sebenar.
Fungsi panggil balik adalah sangat biasa dan ia boleh membantu kami mengendalikan operasi tak segerak, tetapi apabila kami menggunakan berbilang fungsi panggil balik bersarang, kod akan menjadi sangat sukar untuk dikekalkan. Janji boleh membantu kami menyelesaikan masalah neraka panggil balik, tetapi mungkin sukar untuk pemula memahami. async/waiit ialah penyelesaian tak segerak terbaharu Dengan menggunakannya, kita boleh menjadikan kod tak segerak kelihatan seperti kod segerak.
Atas ialah kandungan terperinci nodejs antara muka yang sama tetapi fungsi yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!