0

我有一个错误,但我不确定它的含义或如何调试它。这是错误:

events.js:74
        throw TypeError('Uncaught, unspecified "error" event.');
              ^
TypeError: Uncaught, unspecified "error" event.
    at TypeError (<anonymous>)
    at EventEmitter.emit (events.js:74:15)
    at EventEmitter.receive (/home/andy/dev/node/tweetmap/node_modules/ntwitter/lib/parser.js:41:14)
    at IncomingMessage.<anonymous> (/home/andy/dev/node/tweetmap/node_modules/ntwitter/lib/twitter.js:266:14)
    at IncomingMessage.EventEmitter.emit (events.js:95:17)
    at IncomingMessage.<anonymous> (_stream_readable.js:736:14)
    at IncomingMessage.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)
    at emitReadable (_stream_readable.js:404:5)
    at readableAddChunk (_stream_readable.js:165:9)

我的代码如下:

twit.stream('statuses/filter', { locations: locs, track: tracks }, function(stream) {
  stream.on('data', function (data) {
        var geo=false,latitude,longitude;

    if(data.geo!=null){
      geo = true;
      latitude = data.geo.coordinates[0];
      longitude = data.geo.coordinates[1];

      var sentiment;
      sentiment(data.text, function (err, result) {
        sentiment = result.score;
        io.sockets.volatile.emit('tweets', {
          user: data.user.screen_name,
          text: data.text,
          geo : geo,
          latitude: latitude,
          longitude: longitude,
          sentiment: sentiment
        });
      });
    }                    
  });
});

在我添加情感函数之前,我的代码运行良好,所以我认为这与调用的异步性质有关。有人能帮我一下吗?

4

1 回答 1

2

您正在尝试调用undefined.

var sentiment;
console.log(typeof sentiment === 'undefined') // true
sentiment(data.text, function (err, result) {

尝试这样的事情:

var _sentiment;
sentiment(data.text, function (err, result) {
    _sentiment = result.score;
    io.sockets.volatile.emit('tweets', {
      user: data.user.screen_name,
      text: data.text,
      geo : geo,
      latitude: latitude,
      longitude: longitude,
      sentiment: _sentiment
    });
  });
}
于 2013-06-11T13:43:51.460 回答