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
Post a Comment