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

Barbara Streisand
Lepaskan: 2024-10-26 03:26:27
asal
272 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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!