Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Melambatkan Pelaksanaan Kod selama 5 Saat Selepas Menetapkan Tamat Masa?

Bagaimanakah Saya Boleh Melambatkan Pelaksanaan Kod selama 5 Saat Selepas Menetapkan Tamat Masa?

Barbara Streisand
Lepaskan: 2024-10-26 03:26:27
asal
444 orang telah melayarinya

How Can I Delay Code Execution for 5 Seconds After Setting a Timeout?

Menangguhkan Pelaksanaan Kod selama 5 Saat

Kod yang disediakan cuba untuk melambatkan pelaksanaan operasi selama 5 saat menggunakan fungsi setTimeout:

<code class="javascript">function stateChange(newState) {
  setTimeout('', 5000);

  if(newState == -1) {
    alert('VIDEO HAS STOPPED');
  }
}</code>
Salin selepas log masuk

Walau bagaimanapun, kod segera menyemak keadaan newState == -1 selepas menjadualkan tamat masa, mengalahkan kelewatan yang dimaksudkan.

Penyelesaian Penyemak Imbas/Node.js

Penyelesaian yang betul melibatkan penggunaan tak segerak teknik pengaturcaraan untuk menangguhkan pelaksanaan pernyataan if sehingga selepas 5 saat berlalu. Untuk penyemak imbas, anda boleh menggunakan sintaks async/waiit:

<code class="javascript">// Utility function
const delay = ms => new Promise(res => setTimeout(res, ms));

// Function to wait 5 seconds before checking newState
const stateChange = async (newState) => {
  await delay(5000);
  if (newState == -1) {
    alert('VIDEO HAS STOPPED');
  }
};</code>
Salin selepas log masuk

Untuk Node.js 16 dan ke atas, anda boleh memanfaatkan setTimeout berasaskan janji terbina dalam:

<code class="javascript">import { setTimeout } from "timers/promises";

const stateChange = async (newState) => {
  await setTimeout(5000);
  if (newState == -1) {
    alert('VIDEO HAS STOPPED');
  }
};</code>
Salin selepas log masuk

Ingat untuk menyemak sokongan penyemak imbas untuk versi async/wait dan Node.js untuk setTimeout berasaskan janji terbina dalam.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melambatkan Pelaksanaan Kod selama 5 Saat Selepas Menetapkan Tamat Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan