Maison > interface Web > js tutoriel > Maîtrisez rapidement l'utilisation de setTimeout et setInterval dans Node.js

Maîtrisez rapidement l'utilisation de setTimeout et setInterval dans Node.js

高洛峰
Libérer: 2017-02-08 15:54:26
original
1310 Les gens l'ont consulté

Node.js, comme js, dispose également de minuteries, de minuteries d'expiration, de minuteries d'intervalle, de minuteries ponctuelles et de la fonction process.nextTick(callback) pour implémenter la planification d'événements. Aujourd'hui, apprenons à utiliser setTimeout et setInterval.

1. Délai d'expiration setTimeout (similaire à after dans GCD)

Dans node.js, vous pouvez utiliser la méthode setTimeout(callback, delayMillSeconds, [args]) intégrée à node.js. . Lorsque setTime() est appelé, la fonction de rappel sera exécutée

après delayMillSeconds. setTime() renverra un ID d'objet timer, qui peut être annulé en transmettant l'ID à clearTimeout (timeoutId) avant l'expiration de delayMillSeconds.

function myfunc(){
 console.log("myfunc");
};
var mytimeout=setTimeout(myfunc,1000);
clearTimeout(mytimeout);
Copier après la connexion
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js
 
Process finished with exit code 0
Copier après la connexion

Si vous commentez la ligne clearTimeout(mytimeout);, vous pouvez voir que myfunc() sera exécuté.

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js
myfunc
 
Process finished with exit code 0
Copier après la connexion

2. Minuterie d'intervalle setInterval (similaire à dispatch_source_t ou NSTimer dans GCD)

La minuterie d'intervalle est utilisée pour effectuer un travail à intervalles réguliers. , node.js a setInterval(callback, delayMilliSecond, [args]) intégré pour créer et renvoyer l'ID de l'objet timer, et l'annuler via clearInterval().

/**
 * Created by Administrator on 2016/3/11.
 */
function myfunc(Interval){
 console.log("myfunc "+Interval);
}
var myInterval=setInterval(myfunc,1000,"Interval");
function stopInterval(){
 clearTimeout(myInterval);
 //myInterval.unref();
}
setTimeout(stopInterval,5000);
Copier après la connexion

Le code ci-dessus sert à créer la fonction de rappel myfunc de setInterval. Le paramètre est Interval. setInterval est exécuté toutes les 1 secondes. Sa fonction de rappel le permet. l'intervalle La minuterie est annulée.

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Interval.js
myfunc Interval
myfunc Interval
myfunc Interval
myfunc Interval
 
Process finished with exit code 0
Copier après la connexion

3. Annulez la référence du timer de la boucle d'événements

Lorsque seules les fonctions de rappel du timer existent dans la file d'attente des événements, si vous ne souhaitez pas les exécuter Plus, vous pouvez utiliser la fonction unref() de l'objet renvoyé par setInterval et setTimeout pour notifier à la boucle d'événements de ne pas continuer.

Lorsque unref() est utilisé en combinaison avec setTimeout, un timer indépendant doit être utilisé pour réveiller la boucle d'événements. Une utilisation intensive aura également un impact sur les performances, alors utilisez-la le moins possible.

4. Le temps d'exécution de setTimeout et setInterval n'est pas précis

Ils ajoutent des rappels à la file d'attente des événements à certains intervalles, et l'exécution n'est pas non plus trop précise

function simpleTimeout(consoleTime)
{
 console.timeEnd(consoleTime);
}
console.time("twoSecond");
setTimeout(simpleTimeout,2000,"twoSecond");
 
console.time("oneSecond");
setTimeout(simpleTimeout,1000,"oneSecond");
 
console.time("fiveSecond");
setTimeout(simpleTimeout,5000,"fiveSecond");
 
console.time("50MillSecond");
setTimeout(simpleTimeout,50,"50MillSecond");
Copier après la connexion

Les résultats de sortie de l'exécution du code ci-dessus plusieurs fois seront différents.

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js
50MillSecond: 51ms
oneSecond: 1000ms
twoSecond: 2002ms
fiveSecond: 5001ms
 
Process finished with exit code 0
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à tout le monde d'apprendre à utiliser setTimeout et setInterval dans Node.js.

Pour plus d'articles sur la façon de maîtriser rapidement setTimeout et setInterval dans Node.js, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal