【问题标题】:Node.js 6 and anonymous objectsNode.js 6 和匿名对象
【发布时间】:2016-10-26 03:28:19
【问题描述】:

有人知道为什么从 Node.js 6.0 开始 console.log 有时会呈现带有前导 anonymous 字的对象吗?

anonymous {val: 123}

这是什么意思,如何应对?

我正在为我正在使用的一些库中的对象获取它。

【问题讨论】:

  • 这通常是在将对象直接传递给函数时引起的。比如,吉米({test:'123'})。您可以尝试设置 var obj={test:'123'};吉米(obj)。这可能会解决您的问题。
  • 如果我只是这样做,它不会重现。一定是别的东西。

标签: node.js console


【解决方案1】:

这是在 Node.js 6.0.0 中首次引入的一项功能,在通过util.inspect 进行对象检查时,当匿名对象写入控制台时,会在匿名对象前面加上字符串anonymous,这表示匿名对象实例化。

它不影响功能,完全可以忽略。

【讨论】:

  • 好吧,例如 Seneca 认为这是一个错误:Error: seneca: Action cmd:get,role:project responded with result that was not an object or array: anonymous {...}
  • @yentsun 我猜,它使用util.inspect 输出一个字符串,然后比较控制台渲染。这不是一个好的做法,因为它几乎不代表有效的对象状态。
  • 将 Node 版本降级到 4.x 并没有修复错误:Error: seneca: Action cmd:get,role:project responded with result that was not an object or array: {...},所以我猜这是与 Seneca 相关的错误,您是对的 - anonymous {} 不会影响功能 :)
  • 有没有办法(标志)把它关掉,所以节点不打印anonymous
  • @MuratOzgul 不,无法关闭。
猜你喜欢
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-01-05
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多