Node.js ialah platform yang sangat popular untuk membina aplikasi web yang pantas dan berskala. Sebagai teknologi dipacu peristiwa, Node.js melaksanakan operasi I/O tanpa sekatan dengan sangat baik melalui fungsi panggil balik. Walau bagaimanapun, kadangkala kita tertanya-tanya, bagaimana untuk memutuskan masa untuk menggunakan panggilan balik?
Dalam artikel ini, kita akan membincangkan panggilan balik dalam Node.js dan masa untuk menggunakan fungsi panggil balik.
Apakah panggilan balik itu?
Panggil balik ialah fungsi yang dilaksanakan selepas fungsi tak segerak selesai dengan jayanya. Ini bermakna apabila kita perlu melakukan operasi tak segerak, kita boleh menghantar fungsi panggil balik kepada operasi dan melaksanakannya selepas berjaya diselesaikan. Dengan cara ini, kami boleh mengendalikan operasi tak segerak tanpa menyekat proses tersebut.
Dalam Node.js, fungsi panggil balik selalunya digunakan bersama dengan gelung acara. Gelung peristiwa akan terus menunggu untuk fungsi panggil balik dicetuskan dan akan terus melaksanakan kod lain selepas fungsi panggil balik selesai.
Dalam situasi apakah panggilan balik digunakan?
Fungsi panggil balik sangat berguna dalam pengaturcaraan tak segerak. Berikut ialah beberapa situasi di mana panggilan balik digunakan:
Apabila membaca atau menulis fail, biasanya kita perlu melakukan operasi tak segerak. Pada masa ini, kami boleh menggunakan panggilan balik untuk mengendalikan operasi selepas pembacaan atau penulisan fail selesai. Contohnya, apabila menggunakan pustaka fs untuk operasi fail dalam Node.js, kod untuk membaca fail mungkin kelihatan seperti ini:
const fs = require('fs'); fs.readFile('/path/to/file', (err, data) => { if (err) throw err; console.log(data); });
Dalam contoh ini, kami menghantar fungsi panggil balik sebagai parameter. Apabila bacaan fail selesai, fungsi panggil balik akan dicetuskan dan kandungan fail akan dicetak.
Dalam Node.js, kita biasanya perlu berinteraksi dengan pangkalan data. Jika kita perlu membaca atau menulis data daripada pangkalan data, lebih baik menggunakan fungsi panggil balik. Contohnya, menanyakan pangkalan data MongoDB menggunakan fungsi panggil balik dalam Mongoose mungkin kelihatan seperti ini:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); const db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function() { // we're connected! const kittySchema = new mongoose.Schema({ name: String }); const Kitten = mongoose.model('Kitten', kittySchema); Kitten.find(function (err, kittens) { if (err) return console.error(err); console.log(kittens); }); });
Dalam contoh ini, kami menggunakan fungsi panggil balik untuk menanyakan pangkalan data MongoDB. Selepas pertanyaan selesai, fungsi panggil balik dicetuskan dan hasil pertanyaan dicetak.
Node.js digunakan terutamanya untuk menulis aplikasi rangkaian, jadi kami selalunya perlu melakukan operasi rangkaian. Apabila kita perlu menghantar permintaan ke pelayan atau menerima data, sebaiknya gunakan fungsi panggil balik. Sebagai contoh, kod untuk membuat permintaan HTTP menggunakan modul http Node.js mungkin kelihatan seperti ini:
const http = require('http'); http.get('http://www.google.com/', (res) => { console.log(`Got response: ${res.statusCode}`); res.resume(); }).on('error', (e) => { console.log(`Got error: ${e.message}`); });
Dalam contoh ini, kami mengendalikan respons HTTP menggunakan fungsi panggil balik. Apabila kami menerima respons, fungsi panggil balik akan dicetuskan dan kod status respons akan dicetak.
Selain senario ini, terdapat banyak situasi di mana fungsi panggil balik boleh digunakan Contohnya, fungsi panggil balik sangat sesuai untuk digunakan dalam pemprosesan masa, pemprosesan baris gilir dan pengelogan.
Kebaikan dan keburukan panggilan balik
Fungsi panggil balik, sebagai satu bentuk pengaturcaraan tak segerak, sudah tentu mempunyai kelebihan dan kekurangan.
Kelebihan:
Kelemahan:
Kesimpulan
Fungsi panggil balik ialah satu bentuk pengaturcaraan tak segerak dan digunakan secara meluas dalam Node.js. Penggunaan fungsi panggil balik yang paling penting adalah untuk mengendalikan nilai pulangan selepas operasi tak segerak selesai. Fungsi panggil balik boleh mengurangkan penggunaan kod dan memori dengan memproses berbilang operasi tak segerak serentak, dan boleh meningkatkan kelajuan tindak balas program. Walau bagaimanapun, menggunakan fungsi panggil balik yang tidak betul boleh membawa kepada kod yang rumit dan sukar untuk diselenggara, yang boleh mengurangkan prestasi program. Oleh itu, gunakan fungsi panggil balik dengan berhati-hati untuk mengoptimumkan kod anda dan meningkatkan kecekapan dan kebolehbacaan program anda.
Atas ialah kandungan terperinci Bila hendak menggunakan panggilan balik dalam nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!