奇怪&&运算符在node.js中的行为
我的节点应用程序只是吐出这个错误,我不明白:
trendData && trendData.forEach(function(trendDataItem){ ^ TypeError: Object Error: HTTP Error undefined: undefined has no method 'forEach' at /home/myapp/node/dataSource/enabled/twitterTrending.js:9:36
&&操作符应该阻止趋势数据的任何undefined
值到达expression式的第二部分,但似乎没有奏效。 我对node.js的理解是,我的代码不必关心multithreading问题,因此我认为趋势数据的值在expression式的第一部分和第二部分的评估之间trendData
发生变化。
trendData
数值是从一个由twitter库( 在这里是源代码)所做的callback传入的,失败的行在'callback'函数中,从我能看到的应该是JSON.parse
的结果,如果一切正常,否则将包含故障信息。
有人有什么线索怎么回事?
你的理解是正确的,这意味着在这种情况下, trendData
数据不是undefined
或者其他的虚假值,而是没有forEach
方法的对象。 基于提供的有限片段, trendData
是一个包含错误消息而不是您期望的数组的string。