Kuinka jättää aikakatkaisut taakse Node.js:ssä?

Kuinka Jattaa Aikakatkaisut Taakse Node Js Ssa



Node.js:ssa ' Ajastimet ” moduuli ajoittaa tehtävän, joka voidaan suorittaa tietyn aikavälin jälkeen useiden sisäänrakennettujen menetelmiensä avulla. Tämä moduuli tarjoaa myös ' Aikalisä ' luokka, joka luodaan oletuksena sisäisesti, kun ajoitettu ' setTimeout ()' tai ' setInterval ()' suorittaa. Tämä luokka jatkaa toimintaansa, vaikka määritetyt menetelmät on pysäytetty tai peruutettu. Näin ollen käyttäjän on pysäytettävä se, minkä vuoksi tapahtumasilmukka voi pysähtyä.

Tämä kirjoitus näyttää, kuinka aikakatkaisut jätetään taakse Node.js:ssä.







Kuinka jättää aikakatkaisut taakse Node.js:ssä?

Poistuaksesi tai peruuttaaksesi tapahtumasilmukan suorittamisen ajoitusmenetelmien peruuttamisen jälkeen, käytä ' unref ()' ja ' viite ()' -menetelmiä. ' unref ()' -menetelmä pyytää ' Aikalisä ” -objekti deaktivoidaksesi tapahtumasilmukan suorituksen, koska se ei vaadi enempää. Toisaalta ' viite ()' menetelmä viittaa ' ajastin ' -objekti tarkistaakseen, onko se aktiivinen vai pois käytöstä ' unref ()' menetelmällä.



' unref ()' -menetelmä pysäyttää tapahtumasilmukan suorittamisen, jos muuta prosessia ei ole suoritettava ennen määritetyn takaisinkutsun kutsumista. Kun kaikki on tehty, ' viite ()' -menetelmä varmistaa, onko ' Aikalisä ”-objekti on deaktivoitu vai ei.



'Ref()'-menetelmän syntaksi

' viite ()' -menetelmä perustuu sen alla esitettyyn yleistettyyn syntaksiin:





Aikalisä. viite ( )

'Unref()'-menetelmän syntaksi

' process.unref ()' -menetelmä riippuu sen alla kirjoitetusta perussyntaksista:

Aikalisä. unref ( )

Parametrit : Kumpikaan yllä olevista define-syntakseista ei tarvitse lisäargumentteja päätoimintojensa suorittamiseen.



Palautusarvot: ' viite ()' ja ' unref ()' menetelmät tarjoavat ' Ei mitään ”palautti tyypin.

Esimerkki: 'ref()'- ja 'unref()'-menetelmien käyttäminen 'Timeout'-objektin pysäyttämiseksi

Tämä esimerkki näyttää käytännön toteutuksen ' viite ()' ja ' unref ()' menetelmät tapahtumasilmukan oletuskäyttäytymisen hallitsemiseksi ja sisäisesti luodun ' Aikalisä 'objekti:

oli Aikalisä = setTimeout ( toiminto myFun ( ) {
konsoli. Hirsi ( 'Aikakatkaisu on asetettu 1000 ms' , 1000 ) ;
} ) ;
konsoli. Hirsi ( '2.' , Aikalisä. hasRef ( ) ) ;
konsoli. Hirsi ( '3.' , Aikalisä. viite ( ) ) ;
konsoli. Hirsi ( '4.' , Aikalisä. unref ( ) ) ;
konsoli. Hirsi ( '5.' , Aikalisä. hasRef ( ) ) ;
Aikalisä. viite ( )
konsoli. Hirsi ( '6.' , Aikalisä. hasRef ( ) ) ;
clearTimeout ( Aikalisä ) ;
konsoli. Hirsi ( '7. Aikakatkaisu on tyhjennetty!' ) ;

Yllä olevien koodirivien selitys on kirjoitettu alla:

  • Ensinnäkin ' Aikalisä '-objekti käyttää ' setTimeout ()' -menetelmä, joka määrittää funktion, joka näyttää määritetyn tehtävälausekkeen tietyn aikaviiveen jälkeen. Tämä menetelmä palauttaa ' Aikalisä ”objekti sisäisesti.
  • Seuraavaksi ' console.log ()' -menetelmä käyttää ' hasRef ()' -menetelmä tarkistaaksesi, onko ' Aikalisä ()' -objekti on olemassa vai ei. Se palauttaa 'boolen' arvon ulostulona.
  • Sen jälkeen ' console.log ()' -menetelmä käyttää ' viite ()' tapa tulostaa palautettu ' Aikalisä ”objekti.
  • Nyt ' unref ()' -menetelmä deaktivoi ' Aikalisä '-objekti, jos se on olemassa, ja tarkistaa sitten tuloksen ' hasRef ()' menetelmällä.
  • Lopuksi viitataan ' Aikalisä ' -objekti uudelleen, tarkistamalla sen olemassaolon ja sitten 'pysäyttämällä' intervallin ' clearTimeout ()' menetelmällä.

Lähtö

Suorita ' sovellus .js'-tiedosto käyttäen annettua ' solmu 'komento:

solmusovellus. js

Alla oleva tulos osoittaa ensin, että ' Aikalisä ” -objekti ja poistaa sen sitten käytöstä ja pysäyttää intervallin:

Siinä kaikki lähteminen ' Aikalisä ”-objektin takana Node.js:ssä.

Johtopäätös

jättääksesi ' Aikalisä 'objekti käytä sisäänrakennettua' unref ()' ja ' viite ()' menetelmät ' Aikalisä ”luokka. Molemmat menetelmät suorittavat toiminnot nimiensä ja toimintojensa perusteella. Nämä menetelmät käsittelevät tapahtumasilmukan oletuskäyttäytymistä. Tämä kirjoitus on havainnollistanut kaikkia mahdollisia tapoja jättää aikakatkaisut taakse Node.js:ssä.