gpt4 book ai didi

javascript - Node.js 重新加载模块错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:40 25 4
gpt4 key购买 nike

我以这种方式重新加载模块:

require('./module.js');             // require the module
delete require.cache('/module.js'); // delete module from cache
require('/module.js'); // re-require the module

但是如果模块包含这样的内容就会出现问题:

setInterval(function(){ 
console.log('hello!');
}, 1000);

每次重新加载模块时,都会调用新的 setInterval,但最后一个不会关闭。

有什么方法可以了解每个模块的(长时间)运行函数,以便我可以在再次需要它之前停止它们?或者有什么建议我如何才能完成这项工作?

我对任何疯狂的想法持开放态度。

最佳答案

这只是一个大胆的猜测,但您也许可以在domain内加载该模块。 .

完成后,使用 domain.dispose() 清除计时器:

The dispose method destroys a domain, and makes a best effort attempt to clean up any and all IO that is associated with the domain. Streams are aborted, ended, closed, and/or destroyed. Timers are cleared. Explicitly bound callbacks are no longer called. Any error events that are raised as a result of this are ignored.

关于javascript - Node.js 重新加载模块错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15609664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com