2017-10-05 15 views
0

Das ist mein JS in NodeJS:node.js: wie setInterval und clearInterval zu verwenden?

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

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

die mir die Ausgabe zurück:

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 
} 

Während in einfachen Javascript es eine einfache Integer-Zahl

kehrt Wenn ich anhängen Intervall ein vorhandenes Benutzerobjekt, Beispiel:

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

Ich bin mehr clearInterval nicht in der Lage:

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

Es sollte gut funktionieren, vorausgesetzt, dass "user" das gleiche Objekt ist, das Sie beim Speichern des Rückgabewerts von 'setInterval' verwendet haben. Mit anderen Worten, der Benutzer kann zwischenzeitlich nicht zu/von JSON konvertiert worden sein. – robertklep

+0

Was meinen Sie mit "In einfachen Javascript gibt es eine einfache INTEGER Nummer"? –

+0

Js gibt int zurück und nodejs gibt das Objekt zurück – yarek

Antwort

2

Mit setInterval()

Was passiert, wenn Sie die Ausführung des Codes Blocks in bestimmten Abständen wiederholen müssen? Hierfür verfügt Node über Methoden namens setInterval() und clearInterval(). Die setInterval() - Funktion ähnelt sehr oft setTimeout(), wobei dieselben Parameter wie die Callback-Funktion, die Verzögerung und alle optionalen Argumente für die Übergabe an die Callback-Funktion verwendet werden.

Ein einfaches Beispiel für setInterval() erscheint unter:

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

clearInterval(interval); 

Dies ist ein weiterer Weg, wenn Sie nur ein Intervall behalten wollen

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

Im obigen Beispiel jede Minute läuft, intervalFunc () wird etwa alle 1500 Millisekunden oder 1,5 Sekunden ausgeführt, bis es gestoppt wird. Hoffe das hilft.

Verwandte Themen