Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana Menunggu 5 Saat Sebelum Melaksanakan Baris Seterusnya dalam JavaScript?

Bagaimana Menunggu 5 Saat Sebelum Melaksanakan Baris Seterusnya dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 07:01:31227semak imbas

How to Wait 5 Seconds Before Executing the Next Line in JavaScript?

Tunggu 5 Saat Sebelum Melaksanakan Baris Seterusnya

Dalam JavaScript, fungsi setTimeout() menjadualkan fungsi untuk dilaksanakan selepas bilangan milisaat yang ditetapkan. Walau bagaimanapun, ia tidak menghentikan pelaksanaan kod, bermakna baris kod seterusnya akan dilaksanakan sejurus selepas panggilan setTimeout(), tanpa mengira kelewatan yang ditentukan.

Kod Anda

Kod anda bertujuan untuk menunggu 5 saat sebelum menyemak sama ada newState adalah sama dengan -1. Walau bagaimanapun, memandangkan setTimeout() tidak menyekat kod, semakan berlaku serta-merta, sebelum kelewatan 5 saat berlaku.

Penyelesaian

Untuk mencapai tingkah laku yang diingini, anda perlu menggunakan mekanisme yang boleh menjeda pelaksanaan kod anda selama 5 saat. Terdapat dua pendekatan moden yang boleh anda pertimbangkan:

1. Sintaks Async/Await (Pelayar Sahaja)

ES6 memperkenalkan sintaks async/wait, yang membolehkan anda menulis kod tak segerak dalam gaya yang lebih segerak. Dengan menandakan fungsi anda sebagai tidak segerak, anda boleh menggunakan kata kunci await untuk menjeda pelaksanaan sehingga janji diselesaikan.

<code class="javascript">const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

const stateChange = async newState => {
  await delay(5000);

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

2. Modul Pemasa/Janji (Node.js Sahaja)

Dalam Node.js 16, modul pemasa/janji menyediakan versi setTimeout berasaskan janji. Ini membolehkan anda menjeda pelaksanaan dan menunggu kelewatan selesai sebelum meneruskan.

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

const stateChange = async newState => {
  await setTimeout(5000);

  if (newState === -1) {
    console.log('VIDEO HAS STOPPED');
  }
};</code>

Kedua-dua pendekatan ini akan memastikan bahawa pelaksanaan kod dihentikan selama 5 saat sebelum semakan newState dilakukan.

Atas ialah kandungan terperinci Bagaimana Menunggu 5 Saat Sebelum Melaksanakan Baris Seterusnya dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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