Javascripti setTimeout ()

Lang L: none (table-of-contents)

Selles õpetuses saate näidete abil õppida meetodit JavaScripti setTimeout ().

setTimeout()Meetod täidab koodiplokk määratud aja pärast. Meetod täidab koodi ainult üks kord.

JavaScripti setTimeouti tavaliselt kasutatav süntaks on:

 setTimeout(function, milliseconds);

Selle parameetrid on järgmised:

  • function - koodiploki sisaldav funktsioon
  • millisekundid - aeg, mille möödudes funktsioon täidetakse

setTimeout()Meetod tagastab intervalID , mis on positiivne täisarv.

Näide 1: teksti kuvamine üks kord 3 sekundi pärast

 // program to display a text using setTimeout method function greet() ( console.log('Hello world'); ) setTimeout(greet, 3000); console.log('This message is shown first');

Väljund

Seda teadet näidatakse kõigepealt  Tere maailm

Ülaltoodud programmis setTimeout()kutsub meetod greet()funktsiooni üles pärast 3000 millisekundit ( 3 sekundit).

Seega kuvab programm teksti Hello world ainult üks kord 3 sekundi pärast .

Märkus : setTimeout()meetod on kasulik, kui soovite mõne aja pärast ühe ploki käivitada. Näiteks sõnumi näitamine kasutajale pärast määratud aja möödumist.

setTimeout()Meetod tagastab intervalli id. Näiteks,

 // program to display a text using setTimeout method function greet() ( console.log('Hello world'); ) let intervalId = setTimeout(greet, 3000); console.log('Id: ' + intervalId); 

Väljund

 Id: 3 Tere maailm

Näide 2: kuvamisaeg iga 3 sekundi järel

 // program to display time every 3 seconds function showTime() ( // return new date and time let dateTime= new Date(); // returns the current local time let time = dateTime.toLocaleTimeString(); console.log(time) // display the time after 3 seconds setTimeout(showTime, 3000); ) // calling the function showTime();

Väljund

 17:45:39 17:45:43 17:45:47 17:45:50 17:45:50… 

Ülaltoodud programm kuvab aega iga 3 sekundi järel.

setTimeout()Meetod nõuab funktsiooni ainult üks kord pärast ajavahemik (siin 3 sekundit).

Kuid kuna ülaltoodud programmis helistab funktsioon ise, kuvab programm aega iga 3 sekundi järel.

See programm töötab lõputult (kuni mälu saab otsa).

Märkus . Kui peate funktsiooni mitu korda käivitama, on parem kasutada setInterval()meetodit.

JavaScripti clearTimeout ()

Nagu näete ülaltoodud näites, käivitab programm koodiploki pärast määratud ajaintervalli. Kui soovite selle funktsiooni kõne peatada, saate seda clearTimeout()meetodit kasutada .

Meetodi süntaks clearTimeout()on:

 clearTimeout(intervalID);

Siin intervalIDon setTimeout()meetodi tagastusväärtus .

Näide 3: kasutage meetodit clearTimeout ()

 // program to stop the setTimeout() method let count = 0; // function creation function increaseCount()( // increasing the count by 1 count += 1; console.log(count) ) let id = setTimeout(increaseCount, 3000); // clearTimeout clearTimeout(id); console.log('setTimeout is stopped.');

Väljund

 setTimeout on peatatud.

Ülaltoodud programmis kasutatakse setTimeout()meetodit loendusväärtuse suurendamiseks 3 sekundi pärast. Kuid clearTimeout()meetod peatab meetodi funktsioonikõne setTimeout(). Seega loendusväärtust ei suurendata.

Märkus . Tavaliselt kasutate clearTimeout()meetodit siis, kui peate setTimeout()meetodikõne enne selle toimumist tühistama .

Samuti saate setTimeout()meetodile edastada täiendavaid argumente . Süntaks on:

 setTimeout(function, milliseconds, parameter1,… .paramenterN);

Kui teil läbida täiendavaid parameetreid setTimeout()meetod, need parameetrid ( parameter1, parameter2jne) antakse edasi määratud funktsiooni .

Näiteks,

 // program to display a name function greet(name, lastName) ( console.log('Hello' + ' ' + name + ' ' + lastName); ) // passing argument to setTimeout setTimeout(greet, 1000, 'John', 'Doe');

Väljund

 Tere, John Doe

Eespool programmi kaks parameetrit Johnja Doeülesanded edastatakse setTimeout()meetod. Need kaks parameetrit on argumendid, mis edastatakse meetodi greet()sees määratletud funktsioonile (siin, funktsioon) setTimeout().

Soovitatav lugemine: JavaScripti asünkroonimine () ja ootamine ()

Huvitavad Artiklid...