Mengawal Aliran Pelaksanaan dalam Puppeteer: Melaksanakan Kelewatan dan Jeda
Dalam Puppeteer, keperluan sering timbul untuk menjeda atau menangguhkan pelaksanaan sebelum meneruskan ke seterusnya baris kod. Ini penting untuk penyegerakan dengan halaman web atau mensimulasikan interaksi pengguna dengan berkesan.
Satu pendekatan biasa ialah menggunakan fungsi setTimeout JavaScript, yang mengambil panggilan balik dan selang masa sebagai parameter. Walau bagaimanapun, seperti yang ditunjukkan dalam coretan kod yang disediakan, kaedah ini tidak mencapai hasil yang diharapkan dalam konteks Puppeteer.
Penyelesaian melibatkan memanfaatkan pendekatan berasaskan Janji. Salah satu cara ialah dengan mentakrifkan fungsi kelewatan:
function delay(time) { return new Promise(function(resolve) { setTimeout(resolve, time) }); }
Dengan menggunakan fungsi ini, kelewatan tempoh yang ditentukan diperkenalkan dalam aliran pelaksanaan:
console.log('before waiting'); await delay(4000); console.log('after waiting');
Puppeteer juga menyediakan binaan -dalam fungsi waitForTimeout yang menawarkan kawalan langsung ke atas tempoh jeda:
await page.waitForTimeout(4000)
Selain itu, jika keinginan berterusan untuk menggunakan page.evaluate untuk memperkenalkan kelewatan, adalah penting untuk memastikan bahawa fungsi panggil balik diselesaikan dengan betul selepas selang yang diingini:
await page.evaluate(async() => { await new Promise(function(resolve) { setTimeout(resolve, 1000) }); });
Dengan melaksanakan teknik kelewatan ini, anda boleh mengawal aliran pelaksanaan dalam Puppeteer dengan berkesan, memastikan penyegerakan yang betul dan interaksi realistik dengan halaman web.
Atas ialah kandungan terperinci Bagaimana untuk Memperkenalkan Kelewatan dan Jeda dalam Aliran Pelaksanaan Puppeteer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!