gpt4 book ai didi

javascript - 递归 process.nextTick 警告

转载 作者:搜寻专家 更新时间:2023-10-31 22:45:57 24 4
gpt4 key购买 nike

作为我的应用程序的一部分,我有以下代码行:

process.nextTick(function() {
// pre-populate cache with all users
console.log('scanning users table in order to pre-populate cache');
tables.users.scan(function(err, users) {
if (err) {
console.error('unable to scan users database in order to pre-populate cache');
return;
}

console.log('found %d users in database', users.length);
});
});

在 ubuntu 中运行应用程序给了我

(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.

RangeError: Maximum call stack size exceeded

在 OSX 上运行良好,没有任何警告。

两者都运行相同的 Node 版本 v0.10.24

删除此代码块即可解决问题。我想弄清楚这里发生了什么。

尝试使用 --trace-deprecation 标志运行 Node

Trace: (node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
at maxTickWarn (node.js:377:17)
at process.nextTick (node.js:480:9)
at onwrite (_stream_writable.js:260:15)
at WritableState.onwrite (_stream_writable.js:97:5)
at WriteStream.Socket._write (net.js:651:5)
at doWrite (_stream_writable.js:221:10)
at writeOrBuffer (_stream_writable.js:211:5)
at WriteStream.Writable.write (_stream_writable.js:180:11)
at WriteStream.Socket.write (net.js:613:40)
at Console.warn (console.js:61:16)
at Console.trace (console.js:95:8)
at maxTickWarn (node.js:377:17)

运行 --throw-deprecation 给出

Error: (node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
at maxTickWarn (node.js:375:15)
at process.nextTick (node.js:480:9)
at Cursor.each (/var/www/node_modules/mongojs/node_modules/mongodb/lib/mongodb/cursor.js:184:13)
at /var/www/node_modules/mongojs/node_modules/mongodb/lib/mongodb/cursor.js:191:16
at Cursor.nextObject (/var/www/node_modules/mongojs/node_modules/mongodb/lib/mongodb/cursor.js:540:5)
at /var/www/node_modules/mongojs/node_modules/mongodb/lib/mongodb/cursor.js:187:12
at process._tickCallback (node.js:415:13)

非常感谢任何帮助。

10倍

最佳答案

原来问题出在我在我的应用程序中使用的模块之一 - mongojs。该问题已在更高版本的模块中解决,我只需要更新我的 package.json

Jamis Charles 关于使用 node --throw-deprecation app.js(或 --trace-deprecation)运行我的应用程序的评论向我展示了错误的堆栈跟踪这让我找到了罪魁祸首模块。

我仍然不确定为什么问题出现在 Ubuntu 而不是我的 MBA 上......

关于javascript - 递归 process.nextTick 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792341/

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