Hướng dẫn sleep function javascript

Home » Code

October 9, 2021

Sử dụng sleep javascript – Với sự trợ giúp của Sleep [], ta có thể tạo một hàm để tạm dừng thực thi trong một khoảng thời gian cố định.

function sleep[ms] {
  return new Promise[resolve => setTimeout[resolve, ms]];
}

async function demo[] {
  console.log['Taking a break...'];
  await sleep[2000];
  console.log['Two seconds later, showing sleep in a loop...'];

  // Sleep in loop
  for [let i = 0; i < 5; i++] {
    if [i === 3]
      await sleep[2000];
    console.log[i];
  }
}

demo[];

I have searched/googled quite a few webpages on JavaScript sleep/wait... and there is no answer if you want JavaScript to "RUN, DELAY, RUN"... what most people got was either, "RUN, RUN[useless stuff], RUN" or "RUN, RUN + delayed RUN"...

I thought: here is a solution that works... but you have to chop up your running codes...: Yes, I know, this is just an easier to read refactoring... still...

Example 1:



DISPLAY
// JavaScript sleep by "therealdealsince1982"; copyrighted 2009 // setInterval var i = 0; function run[] { // Pieces of codes to run if [i == 0]{document.getElementById["id1"].innerHTML= "

code segment " + i + " is ran

"; } if [i == 1]{document.getElementById["id1"].innerHTML= "

code segment " + i + " is ran

"; } if [i == 2]{document.getElementById["id1"].innerHTML= "

code segment " + i + " is ran

"; } if [i >2]{document.getElementById["id1"].innerHTML= "

code segment " + i + " is ran

"; } if [i == 5]{document.getElementById["id1"].innerHTML= "

all code segment finished running

"; clearInterval[t]; } // End interval, stops run i++; // Segment of code finished running, next... } run[]; t = setInterval["run[]", 1000];

Example 2:



DISPLAY
// JavaScript sleep by "therealdealsince1982"; copyrighted 2009 // setTimeout var i = 0; function run[] { // Pieces of codes to run, can use switch statement if [i == 0]{document.getElementById["id1"].innerHTML= "

code segment " + i + " ran

"; sleep[1000];} if [i == 1]{document.getElementById["id1"].innerHTML= "

code segment " + i + " ran

"; sleep[2000];} if [i == 2]{document.getElementById["id1"].innerHTML= "

code segment " + i + " ran

"; sleep[3000];} if [i == 3]{document.getElementById["id1"].innerHTML= "

code segment " + i + " ran

";} //stops automatically i++; } function sleep[dur] {t=setTimeout["run[]", dur];} // Starts flow control again after 'dur' run[]; // Starts

Example 3:



DISPLAY
// JavaScript sleep by "therealdealsince1982"; copyrighted 2009 // setTimeout var i = 0; function flow[] { run[i]; i++; // Code segment finished running, increment i; can put elsewhere sleep[1000]; if [i == 5] {clearTimeout[t];} // Stops flow, must be after sleep[] } function run[segment] { // Pieces of codes to run, can use switch statement if [segment == 0]{document.getElementById["id1"].innerHTML= "

code segment " + segment + " is ran

"; } if [segment == 1]{document.getElementById["id1"].innerHTML= "

code segment " + segment + " is ran

"; } if [segment == 2]{document.getElementById["id1"].innerHTML= "

code segment " + segment + " is ran

"; } if [segment >2]{document.getElementById["id1"].innerHTML= "

code segment "+ segment +" is ran

"; } } function sleep[dur] {t=setTimeout["flow[]", dur];} // Starts flow control again after 'dur' flow[]; // Starts flow

Example 4:



DISPLAY
// JavaScript sleep by "therealdealsince1982"; copyrighted 2009 // setTimeout, switch var i = 0; function flow[] { switch[i] { case 0: run[i]; sleep[1000]; break; case 1: run[i]; sleep[2000]; break; case 5: run[i]; clearTimeout[t]; // Stops flow break; default: run[i]; sleep[3000]; break; } } function run[segment] { // Pieces of codes to run, can use switch statement if [segment == 0]{document.getElementById["id1"].innerHTML= "

code segment " + segment + " is ran

"; } if [segment == 1]{document.getElementById["id1"].innerHTML= "

code segment " + segment + " is ran

"; } if [segment == 2]{document.getElementById["id1"].innerHTML= "

code segment " + segment + " is ran

"; } if [segment >2]{document.getElementById["id1"].innerHTML= "

code segment " + segment + " is ran

"; } i++; // Current segment of code finished running, next... } function sleep[dur] {t=setTimeout["flow[]", dur];} // Starts flow control again after 'dur' flow[]; // Starts flow control for first time...

Chủ Đề