誰能告訴我如何不斷更新發送到連接的客戶端每秒使用和的NodeJS socket.io?發送連續更新到連接的客戶端使用socket.io和的NodeJS
注:我不想使用setInterval()函數,因爲它是不適合我目前的情況。
誰能告訴我如何不斷更新發送到連接的客戶端每秒使用和的NodeJS socket.io?發送連續更新到連接的客戶端使用socket.io和的NodeJS
注:我不想使用setInterval()函數,因爲它是不適合我目前的情況。
您可以在自己引用了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);
}
}
這與使用'setInterval()'沒有什麼不同。弄清楚爲什麼OP禁止使用定時器似乎更有趣。 – jfriend00
區別在於何時運行。上述代碼每隔1000ms運行一次中間代碼運行,而'setInterval'精確地每運行1000ms運行一次,無論代碼在結果函數中使用多長時間。有一個有效的理由使用任何一個,我不知道爲什麼OP不允許setInterval,但時間差異可能是。 – LocalPCGuy
你在找這個https://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/? – Garfield
你可以發佈你當前的服務器文件嗎? –
你說,「每隔幾秒鐘」,但你不想使用'setInterval()'。做怎麼回事,你提出來觸發每隔幾秒鐘您的服務器上的操作 - 這就是'的setInterval()'是,除非你有其他的一些事件驅動機制,你想用,你應該告訴我們。這個問題似乎過於束縛,沒有解釋任何理由。 – jfriend00