所以我正在嘗試為 Discord 制作一個(gè)實(shí)時(shí)控制臺(tái),這樣我就可以在離開(kāi)計(jì)算機(jī)時(shí)看到錯(cuò)誤。我試圖做到這一點(diǎn),以便每次監(jiān)聽(tīng)器接收數(shù)據(jù)時(shí),它都會(huì)清除以前的超時(shí)并創(chuàng)建一個(gè)新超時(shí),這樣就不會(huì)因?yàn)閤監(jiān)聽(tīng)器被調(diào)用多次而x發(fā)送相同的東西?,F(xiàn)在我遇到了問(wèn)題。我可以清除超時(shí)但不能清除其中的事件。child.stdout.on("data", (data) => { stdout = stdout + data.toString(); clearTimeout(timeout); timeout = setTimeout(() => { message.channel.send([stdout], { code: true, split: true }); })});所以這段代碼最終仍然發(fā)送了x很多次。我將如何取消內(nèi)部事件來(lái)解決這個(gè)問(wèn)題?編輯:我的愚蠢錯(cuò)誤。我在清理代碼時(shí)不小心刪除了超時(shí)。下面的代碼解決了一切。child.stdout.on("data", (data) => { stdout = stdout + data.toString(); clearTimeout(timeout); timeout = setTimeout(() => { message.channel.send([stdout], { code: true, split: true }); }, 3000)});
在 Javascript 中清除超時(shí)后,如何取消 setTimeout() 中的事件
大話(huà)西游666
2023-02-24 16:53:58