使用node和nightwatch for loop时如何修复潜在的内存泄漏?
我试图循环遍历网站中的元素数组并且for循环工作正常,除了这个错误我得到MaxListenersExceededWarning:检测到可能的EventEmitter内存泄漏。添加了11个错误监听器。使用emitter.setMaxListeners()来增加限制。
我试图添加事件模块并使用事件emitter.setMaxListeners()方法,我仍然得到此错误。我甚至把它放在for循环中以保持领先于所有其他甚至是听众。我控制台。记录了我的最大听众数量,无法弄清楚为什么我仍然得到这个。
for(let i = 1; i <= 20; i++) {
//console.log(emmiter)
browser
.element('css selector', `mat-nav-list > a:nth-child(${i})`,
function(result) {
if(result.value && result.value.ELEMENT) {
browser.isVisible(`mat-nav-list > a:nth-child(${i})`,
function(result) {
if(result.value === true) {
emmiter.setMaxListeners(emmiter.getMaxListeners() + 1)
console.log(emmiter);
browser.click(`mat-nav-list > a:nth-child(${i})`)
.pause(2000)
}
})
}
})
//.pause(2000)
//.pause(10000)
}
当我遍历多个元素时,我希望它们可以无错误地循环。在这种情况下,我会在没有内存泄漏警告的情况下循环。目前,当我进入这个for循环时我收到警告,它似乎发生在我的一个if语句中。
回答如下:它看起来像是最新版Nightwatch的新控制台输出功能。
我在1.0.18遇到了这个问题。
我最近回滚到夜视仪版本0.9.21,我没有得到内存泄漏错误。我的猜测这是这个版本的夜视仪的新功能,但看到这些错误很烦人。