奇怪&& node.js中的运算符行为

时间:2013-12-29 11:33:59

标签: javascript 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

&&运算符应该阻止任何undefinedtrendData到达表达式的第二部分,但它似乎没有奏效。我对node.js的理解是我的代码不必关心多线程问题,所以我假设trendData的值不可能在表达式的第一部分的评估和第二个。

trendData值是从twitter库发出的回调传递的,源代码here,失败的行是在'回调'函数内部,从我看到的应该是如果一切正常,则为JSON.parse的结果,否则将包含失败信息。

有人知道发生了什么事吗?

1 个答案:

答案 0 :(得分:2)

您的理解是正确的,这意味着在这种情况下trendData不是undefined或其他一些虚假值,而是一个没有forEach方法的对象。基于提供的有限片段trendData是一个包含错误消息的字符串,而不是您期望的数组。