Node.js ialah persekitaran berjalan JavaScript sebelah pelayan tak segerak dipacu peristiwa. Ia ringan, cekap kuasa dan boleh skala. Walau bagaimanapun, disebabkan model pelaksanaan tak segerak Node.js, terdapat beberapa kes di mana operasi tunggu/tangguh yang serupa dengan operasi segerak perlu dilaksanakan secara manual. Operasi tidur sering digunakan untuk mensimulasikan operasi yang berjalan lama atau dalam tugas tertentu yang perlu dilaksanakan selepas tempoh masa. Artikel ini akan memperkenalkan cara melaksanakan operasi tidur dalam Node.js.
Kaedah 1: Gunakan fungsi setTimeout
Kaedah setTimeout ialah fungsi terbina dalam Node.js, yang boleh digunakan untuk mencetuskan fungsi panggil balik selepas bilangan milisaat yang ditetapkan. Kita boleh menggunakan ciri ini untuk mensimulasikan operasi tidur.
Berikut ialah contoh:
function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function main() { console.log('start'); await sleep(2000); // 睡眠2秒 console.log('end'); } main();
Dalam kod di atas, kami mentakrifkan tidur fungsi tak segerak, yang akan mengembalikan objek Promise dan memanggil kaedah penyelesaian selepas bilangan milisaat yang ditentukan. Fungsi utama memanggil fungsi tidur dan menunggu selama 2 saat sebelum mengeluarkan baris log. Melalui sintaks async/menunggu, kami boleh melaksanakan operasi tidur dengan sangat mudah.
Kaedah 2: Gunakan objek Promise tersuai
Kami juga boleh melaksanakan objek Promise sendiri untuk melaksanakan operasi tidur. Kaedah ini lebih fleksibel dan anda boleh menyesuaikan kaedah pelaksanaan objek Promise mengikut keperluan anda sendiri.
Berikut ialah contoh:
function sleep(ms) { return new Promise(resolve => { let startTime = new Date().getTime(); while (new Date().getTime() < startTime + ms); resolve(); }); } async function main() { console.log('start'); await sleep(2000); // 睡眠2秒 console.log('end'); } main();
Dalam contoh ini, kami mentakrifkan fungsi tidur yang akan melaksanakan gelung untuk bilangan milisaat tertentu (untuk pemasaan simulasi). Apabila gelung berakhir, kami memanggil kaedah penyelesaian untuk menamatkan pelaksanaan Janji. Fungsi utama memanggil fungsi tidur dan menunggu selama 2 saat sebelum mengeluarkan baris log.
Perlu diambil perhatian bahawa kaedah ini juga akan menduduki sumber CPU apabila melaksanakan operasi tidur. Ia tidak disyorkan untuk digunakan dalam persekitaran pengeluaran dan hanya digunakan dalam keadaan khas apabila operasi yang berjalan lama perlu disimulasikan. .
Kesimpulan
Tidak kira kaedah mana yang digunakan, melaksanakan operasi tidur adalah mudah. Walaupun model pelaksanaan asynchronous Node.js pandai mengendalikan permintaan konkurensi tinggi, kami juga mempunyai pelbagai kaedah untuk melaksanakan beberapa operasi yang memerlukan menunggu/menunggu. Perlu memilih kaedah pelaksanaan yang sesuai mengikut keperluan sebenar.
Atas ialah kandungan terperinci kaedah tidur nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!