2017-10-05 54 views
0

這是我的NodeJS JS:node.js:如何使用setInterval和clearInterval?

function test(a, room, seconds) { 
    console.log(a, room, seconds); 
} 

intervalid = setInterval(test, 1000, 'room', 20); 
console.log('intervalid', intervalid); 

它返回我的輸出:

intervalid Timeout { 
    _called: false, 
    _idleTimeout: 1000, 
    _idlePrev: TimersList { 
     _idleNext: [Circular], 
     _idlePrev: [Circular], 
     _timer: Timer { '0': [Function: listOnTimeout], _list: [Circular] }, 
     _unrefed: false, 
     msecs: 1000, 
     nextTick: false 
    }, 
    _idleNext: TimersList { 
     _idleNext: [Circular], 
     _idlePrev: [Circular], 
     _timer: Timer { '0': [Function: listOnTimeout], _list: [Circular] }, 
     _unrefed: false, 
     msecs: 1000, 
     nextTick: false 
    }, 
    _idleStart: 377, 
    _onTimeout: [Function: test], 
    _timerArgs: [ 'room', 20 ], 
    _repeat: 1000 
} 

而在簡單的Javascript它返回一個簡單的整數

當我附上間隔現有的用戶對象,例如:

user.intervalid = setInterval(test, 1000, 'room', 20); 

我不能給clearInterval更多:

clearInterval(user.intervalid); // does not work 
+0

它應該工作得很好,只要'user'與您存儲'setInterval'的返回值時使用的對象相同。換句話說,例如,'user'不能同時被轉換爲JSON。 – robertklep

+0

你是什麼意思的「而在簡單的Javascript它返回一個簡單的INTEGER號碼」? –

+0

Js返回int並且nodejs返回對象 – yarek

回答

2

使用的setInterval()

如果你需要在指定的時間間隔重複你的代碼塊的執行?爲此,Node具有稱爲setInterval()和clearInterval()的方法。 setInterval()函數非常像setTimeout(),它使用相同的參數(例如回調函數,延遲和用於傳遞給回調函數的任何可選參數)。

的setInterval()的一個簡單的例子如下所示:

var interval = setInterval(function(str1, str2) { 
    console.log(str1 + " " + str2); 
}, 1000, "Hello.", "How are you?"); 

clearInterval(interval); 

這是另一種方式,當你想保持運行的每一分鐘

function intervalFunc() { 
    console.log("Hello!!!!"); 
    } 
    setInterval(intervalFunc,1500); 

在上面的例子中只有一個時間間隔,intervalFunc( )將執行大約每1500毫秒或1.5秒,直到它停止。希望這可以幫助。

相關問題