NodeJS TypeError:无法读取未定义的属性“Symbol(Symbol.toStringTag)”

2mbi3lxu  于 2023-04-05  发布在  Node.js
关注(0)|答案(2)|浏览(462)

我在尝试运行我用Node.js编写的机器人时遇到了一个不幸的错误。
每当试图运行调用bot的各种其他函数的init脚本时,我都会得到以下错误“TypeError:无法在代码中的不同位置读取属性'Symbol(Symbol.toStringTag)'的undefined”。我知道这是JavaScript的标准函数之一,所以我不确定为什么它会给我一个错误。

奇怪的是这些错误是新的,我以前多次运行脚本都没有遇到这个问题。
下面是async.js中的第一个错误行,显示在第175行。

174 function isAsync(fn) {
175    return supportsSymbol && fn[Symbol.toStringTag] === 'AsyncFunction';
176 }

第二个例子在我自己的bot_startup. js中的第43行。

43 connectToServerCallback(null, "connected");

似乎每当试图将数据转换为字符串时,它都会出错,但我不知道如何解决这个问题。任何帮助都将不胜感激。

lhcgjxsq

lhcgjxsq1#

对于那些想知道的人,我能够自己解决这个问题。
这个错误本身是由于在async.waterfall中调用的一个函数没有被正确定义(提交到Git时的一个错误回滚了它调用函数的一个文件,使得函数调用不再有效)。

b4wnujal

b4wnujal2#

对我来说,问题是async.waterfall()方法调用中缺少逗号。我收到以下错误堆栈:

TypeError: Cannot read property 'Symbol(Symbol.toStringTag)' of undefined
    at isAsync (~/node_modules/async/dist/async.js:228:32)
    at wrapAsync (~/node_modules/async/dist/async.js:232:12)
    at nextTask (~/node_modules/async/dist/async.js:5322:20)
    at Object.waterfall (~/node_modules/async/dist/async.js:5334:5)
    at myFunction (~/path/to/file.js:2318:13)                 // Error was not here
    at nextTask (~/node_modules/async/dist/async.js:5324:14)
    at next (~/node_modules/async/dist/async.js:5331:9)
    at ~/node_modules/async/dist/async.js:969:16
    at myFunction (~/path/to/file.js:2237:16)                 // Error was here
    at nextTask (~/node_modules/async/dist/async.js:5324:14)
    at next (~/node_modules/async/dist/async.js:5331:9)
    at ~/node_modules/async/dist/async.js:969:16
    at ~/node_modules/mongoose/lib/model.js:4669:16
    at ~/node_modules/mongoose/lib/utils.js:258:16
    at ~/node_modules/mongoose/lib/query.js:4065:11
    at ~/node_modules/kareem/index.js:135:16
    at processTicksAndRejections (internal/process/task_queues.js:79:11)

错误行:async.waterfall([foo. bar],cb)
固定线路:async.waterfall([foo,bar],cb)
我不确定,但如果你的问题和我的相似,它可能在bot startup.js的第49行,如屏幕截图所示。我希望这些信息对遇到类似问题的人有用。

相关问题