使用 node 和 nightwatch for 循环时如何修复潜在的内存泄漏?
How to fix potential Memory leak when using node and nightwatch for loop?
我正在尝试对网站中的一组元素进行 for 循环,for 循环工作正常,除了这个错误,我收到 MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个错误侦听器。使用 emitter.setMaxListeners() 增加限制。
我已尝试添加事件模块并使用事件 emitter.setMaxListeners() 方法,但我仍然收到此错误。我什至将它放在 for 循环中以保持领先于所有其他偶数听众。我已经 console.logged 我的最大听众数量,但不明白为什么我仍然收到这个消息。
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 上遇到了这个问题。
我最近回滚到 nightwatch 版本 0.9.21,但没有收到内存泄漏错误。我猜这是这个版本的守夜人中的新功能,但看到这些错误很烦人。
我正在尝试对网站中的一组元素进行 for 循环,for 循环工作正常,除了这个错误,我收到 MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个错误侦听器。使用 emitter.setMaxListeners() 增加限制。
我已尝试添加事件模块并使用事件 emitter.setMaxListeners() 方法,但我仍然收到此错误。我什至将它放在 for 循环中以保持领先于所有其他偶数听众。我已经 console.logged 我的最大听众数量,但不明白为什么我仍然收到这个消息。
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 上遇到了这个问题。
我最近回滚到 nightwatch 版本 0.9.21,但没有收到内存泄漏错误。我猜这是这个版本的守夜人中的新功能,但看到这些错误很烦人。