2017-08-31 88 views
2

誰能告訴我如何不斷更新發送到連接的客戶端每秒使用和的NodeJS socket.io?發送連續更新到連接的客戶端使用socket.io和的NodeJS

注:我不想使用setInterval()函數,因爲它是不適合我目前的情況。

+0

你在找這個https://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/? – Garfield

+0

你可以發佈你當前的服務器文件嗎? –

+0

你說,「每隔幾秒鐘」,但你不想使用'setInterval()'。做怎麼回事,你提出來觸發每隔幾秒鐘您的服務器上的操作 - 這就是'的setInterval()'是,除非你有其他的一些事件驅動機制,你想用,你應該告訴我們。這個問題似乎過於束縛,沒有解釋任何理由。 – jfriend00

回答

1

您可以在自己引用了setTimeout功能與setTimeout做到這一點。基本上與做setInterval的結果基本相同,但是在再次運行超時功能之前,將始終等待函數完成(假設同步代碼)。

function thingToRepeat() { 
    let shouldCancel = false; 
    // send messages, do stuff, 
    // set shouldCancel to true to stop looping if needed 

    if (!shouldCancel) { 
    setTimeout(thingToRepeat, 1000); 
    } 
} 
+0

這與使用'setInterval()'沒有什麼不同。弄清楚爲什麼OP禁止使用定時器似乎更有趣。 – jfriend00

+0

區別在於何時運行。上述代碼每隔1000ms運行一次中間代碼運行,而'setInterval'精確地每運行1000ms運行一次,無論代碼在結果函數中使用多長時間。有一個有效的理由使用任何一個,我不知道爲什麼OP不允許setInterval,但時間差異可能是。 – LocalPCGuy

相關問題