Apabila bekerja dengan JavaScript, anda mungkin perlu mengawal aliran operasi tak segerak seperti tamat masa. Di sini, kami meneroka cara untuk menjeda dan menyambung semula tamat masa aktif, serta mendapatkan baki masa pada tamat masa semasa.
Untuk menjeda tamat masa, anda boleh menggunakan pembalut fungsi yang memintas tetingkap.setTimeout panggilan dan menyediakan fungsi yang diperlukan. Fungsi pembalut, Pemasa, mengambil fungsi panggil balik dan kelewatan sebagai argumen dan mengendalikan penjedaan, penyambungan semula dan penjejakan masa yang tinggal.
<code class="javascript">var Timer = function(callback, delay) { var timerId, start, remaining = delay; this.pause = function() { window.clearTimeout(timerId); timerId = null; remaining -= Date.now() - start; }; this.resume = function() { if (timerId) { return; } start = Date.now(); timerId = window.setTimeout(callback, remaining); }; this.resume(); };</code>
Untuk menggunakan pembungkus ini, buat seketika objek Pemasa dan panggilnya kaedah pause() dan resume() mengikut keperluan.
Untuk mendapatkan baki masa pada tamat masa semasa, salah satu cara ialah menyimpan masa mula apabila tamat masa ditetapkan dan kira perbezaan antara masa semasa dan masa mula apabila berhenti seketika.
<code class="javascript">var start = Date.now(); var t = setTimeout("dosomething()", 5000); var remaining = (start + 5000) - Date.now();</code>
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa jika tamat masa telah dijeda dan disambung semula, pengiraan ini mungkin tidak tepat. Dalam fungsi pembalut Pemasa yang disediakan sebelum ini, masa yang tinggal dijejaki dan dikemas kini dengan sewajarnya, menyediakan kaedah yang lebih dipercayai untuk mendapatkan masa yang tinggal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengawal Perlaksanaan Tamat Masa dan Menentukan Baki Masa dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!