Node.js ialah persekitaran larian JavaScript back-end yang sangat berkuasa yang menggunakan mekanisme gelung acara berbenang tunggal untuk melaksanakan pengaturcaraan tak segerak. Walau bagaimanapun, dalam beberapa kes, kami mungkin perlu menggunakan kod segerak untuk mengelakkan masalah yang disebabkan oleh tak segerak. Jadi, bagaimanakah kita melaksanakan kod segerak dalam Node.js? Mari kita ketahui bersama di bawah.
1. Konsep penyegerakan dan tak segerak
Dalam Node.js, penyegerakan dan tak segerak ialah dua konsep yang sangat penting. Dalam mod segerak, kod akan dilaksanakan baris demi baris dalam urutan, dan baris kod seterusnya hanya akan terus dilaksanakan selepas baris kod sebelumnya selesai. Dalam mod tak segerak, kod akan mendaftarkan fungsi panggil balik dahulu dan kemudian terus melaksanakan kod berikutnya. Selepas operasi selesai, laksanakan fungsi panggil balik. Menggunakan asynchronous boleh meningkatkan kecekapan kod dan mengelakkan kesesakan prestasi yang disebabkan oleh penyekatan program.
2. Cara melaksanakan kod segerak
1 Gunakan API penyegerakan
Node.js menyediakan beberapa API penyegerakan yang boleh membantu kami melaksanakan kod penyegerakan. Sebagai contoh, apabila kita menggunakan fs.readFileSync untuk membaca fail, ia akan menyekat pelaksanaan kod dan tidak akan terus melaksanakan kod berikutnya sehingga bacaan fail selesai.
Contohnya:
const fs = require('fs'); const data = fs.readFileSync('test.txt', 'utf8'); console.log(data); console.log('读取文件完成');
Kod di atas menggunakan fs.readFileSync untuk membaca fail Ia akan menyekat semasa pelaksanaan kod, dan kandungan dan kandungan fail tidak akan dikeluarkan sehingga pembacaan fail selesai.
2. Gunakan async/waiit untuk melaksanakan kod segerak
async/wait ialah gula sintaktik untuk pengaturcaraan tak segerak yang disediakan oleh Es6, yang membolehkan kami menulis kod tak segerak secara segerak. Menggunakan async/wait, kita boleh merangkum operasi asynchronous dalam fungsi Promise, gunakan try/catch untuk mengendalikan pengecualian, dan kemudian gunakan await untuk menunggu hasil fungsi Promise kembali.
Contohnya:
const fs = require('fs'); function readFilePromise() { return new Promise((resolve, reject) => { fs.readFile('test.txt', 'utf8', (err, data) => { if (err) { reject(err); return; } resolve(data); }); }); } async function test() { try { const data = await readFilePromise(); console.log(data); console.log('读取文件完成'); } catch (err) { console.log(err); } } test();
Kod di atas menggunakan async/menunggu untuk membaca fail secara serentak. Kami merangkum operasi tak segerak dalam fungsi Promise readFilePromise dan menggunakan try/catch untuk mengendalikan pengecualian. Di dalam fungsi ujian, kami menggunakan await untuk menunggu keputusan Promise kembali, supaya pembolehubah data boleh digunakan terus dalam kod berikutnya.
3. Kelebihan dan Kelemahan Kod Disegerakkan
Menggunakan kod segerak boleh menjadikan kod lebih mudah untuk ditulis dan nyahpepijat, dan juga boleh memastikan ketepatan jujukan akses berubah-ubah. Walau bagaimanapun, terdapat beberapa kelemahan untuk menggunakan kod segerak. Pertama, kelajuan pelaksanaan kod segerak adalah agak perlahan kerana ia menyekat pelaksanaan atur cara, kedua, kod segerak boleh menyebabkan overhed sumber yang berlebihan bagi program kerana ia akan menduduki sumber sistem dan memori semasa pelaksanaan kod.
4. Ringkasan
Apabila menggunakan kod segerak dalam Node.js, kita boleh menggunakan API penyegerakan yang disediakan oleh Node.js, atau kita boleh menggunakan gula sintaks seperti async/menunggu untuk mencapainya . Menggunakan kod yang disegerakkan boleh menjamin susunan akses berubah-ubah, tetapi ia juga membawa beberapa kelemahan. Dalam pembangunan sebenar, kita perlu memutuskan sama ada untuk menggunakan kod segerak berdasarkan keadaan tertentu.
Atas ialah kandungan terperinci Bagaimana untuk menyegerakkan nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!