実戦Nodejsタイマーの遊び方

1944 ワード

パルスクラウド自体はNodeJSを開発言語として使用しており、先端ページはReact技術を使用しています.プロジェクトをする時、普通はタイマーを使います.Nodejsには二つのタイマーがあります.SetTimeoutとSetInterval.タイマーSetTimeoutとSetIntervalがどのように指定された時間の後に実行されるかに関しては、この2つのシステム関数の3番目のパラメータは、いくつかの学生がまだよく分からないかもしれません.私もパルスクラウドのプロジェクトをしている時に見つけました.
この二つの関数の基本的な使い方は簡単です.setTimeoutは指定された時間の後に関数体を実行します.set Intervalは、タイマーをクリアするまで、時間が経つごとに実行されます.以下のように適用します
//set Timeout
setTimeout(function(){
console.log("this is console.log");
}100)
//set Timeoutは100ミリ秒後に「this is consosolie.log」を出力し、タイマーは実行済みです.
//set Interval
let m=1
let=set Interval(function()
console.log(m);

m++;

if(m>10){

    clearInterval(t);

}
}100)
//set Intervalは100ミリ秒ごとにmの値を出力します.mが10より大きい場合、タイマーをクリアすると、もう出力しなくなります.
実はタイマーには第三のパラメータもあります.第四のN番目のパラメータもあります.もちろん、Nは関数で許容できるパラメータの最大値より大きくないです.
3番目のパラメータから、3番目のパラメータを含めて、タイマーのコールバック関数のパラメータとして順次コールバック関数に入力されます.
//set Timeout
setTimeout(function(l,m,n){
console.log(l,m,n);
}100,1,10,100
//setTimeoutはそれぞれ第三四五のパラメータに入ってきました.コールバック関数でも同時に三つのパラメータを受け取りました.
//1 10 100
//set Interval
let m=1
let s=set Interval(function(x,y,z){
console.log(x,y,z);

m++;

if(m>10){

    clearInterval(s);

}
},100,m,m 10,m 100)
//set IntervalもsetTimeoutと同様に、3番目のパラメータから順にコールバック関数に伝えられます.
//外部パラメータが値の種類であれば、第三四五パラメータがどのように変化しても、
//コールバック関数で受信したパラメータは、最初に入った値だけです.
//上のconsolie.log(x,y,z)出力は
//1 10 100
//1 10 100
//1 10 100
//1 10 100
//1 10 100
//1 10 100
//1 10 100
/しかし、外部パラメータが参照タイプである場合、例えば、Objである場合、実行毎に異なるデータが得られ、例えば、
let m={a:1}
let s=set Interval(function(x){
console.log(x);

m.a++;

if(m.a>10){

    clearInterval(s);

}
},100,m)
//では、上のconsolie.log(x)の出力は:
//{a:1}
//{a:2}
//{a:3}
//{a:4}
//{a:5}
//{a:6}
//{a:7}
//{a:8}
//{a:9}
//{a:10}