奇怪&&运算符在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。