使用Node.js的,我設置一個計時器連接的TCP server.when它的成功,這將是cleared.However不work.just這樣的:爲什麼我的clearInterval不起作用?
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 to connect it again later');
if(connectTransferTick!=null)
{
console.log(clearInterval(connectTransferTick));
}
connectTransferTick = setInterval(clientConnect,1000);
});
}
clientConnect();
運行它,你會發現定時器不能清除。
同時,我只要把函數clientConnect(此代碼),就像這樣:
function clientConnect() {
client = new net.Socket();
定時器可以cleared.I不能explaint。爲什麼?請幫助我。謝謝很多。
作爲OP對node.js的代碼,的setInterval的返回是一個'Object',請參見[#的NodeJS定時器](https://nodejs.org/api/timers.html#timers_settimeout_callback_delay_arg ) – fuyushimoya
謝謝你,@fuyushimoya!我沒有意識到它與客戶端的JavaScript實現有什麼不同。經過短暫的測試驗證,我已經修改了我的答案。 – Matt