javascript - why my clearInterval doesn't work? -


using node.js,i set timer connect tcp server.when success ,it cleared.however doesn't work.just this:

var net = require('net'); var connecttransfertick=null;  var client ; client = new net.socket(); function clientconnect() {     client.connect(8009, '127.0.0.1', function () {         console.log('success,clear timer');         if(connecttransfertick!=null);         {             clearinterval(connecttransfertick);         }     });     client.on('error',function()     {});     client.on('close', function () {         console.log('the server had been closed,try connect again later');         if(connecttransfertick!=null)         {             console.log(clearinterval(connecttransfertick));         }         connecttransfertick = setinterval(clientconnect,1000);     }); } clientconnect(); 

run ,you find timer cann't clear.

while,i put code in function clientconnect(),like this:

function clientconnect() {     client = new net.socket(); 

the timer cleared.i can't explaint it.why ? please me.thanks lot.

i think because setinterval called when socket connection closed, you're attempting cancel interval earlier this, when socket first opened.

thus, when call

clearinterval(connecttransfertick) 

at point connecttransfertick still null, because

connecttransfertick = setinterval() 

has not yet happened.


Comments