Node.js:如何将向量传递给函数?

时间:2011-04-15 08:30:22

标签: javascript node.js user-defined-functions

这是我的问题。鉴于我正在将数据保存在数组中:

fetch.on('message', function(msg) {
        msg.data = '';
        msg.on('data', function(chunk) {
            msg.data += chunk;
        });
        msg.on('end', function() {
            msgCache[msg.id].body = msg.data;
        });
    });
fetch.on('end', function() {
     console.log('Done fetching bodies!');
     cb(undefined, msgCache);

  });

fetch.on('end', function() {
       console.log('Done fetching bodies!');
       cb(undefined, msgCache, msg.id);
 });

将“msgCache”数组发送到cb()。

function(msgs) {
    console.log(msgs);  
}

哪个工作正常。但是,我不知道如何在函数中获取msgs [msg.id],没有它,传递数组就没用了。

有没有办法在最后一个函数中访问msgs [msg.id]?

由于

console.log(msgs)的输出:

{ '9991': 
   { headers: 
      { date: [Object],
        to: [Object],
        from: [Object],
        subject: [Object] },
     body: 'test' },
  '9993': 
   { headers: 
      { date: [Object],
        to: [Object],
        from: [Object],
        subject: [Object] },
     body: 'teste2' } }

为了实现这一点,我需要访问msgs [9991] .body。

1 个答案:

答案 0 :(得分:2)

如果您使用正确cb(undefined, msgCache, msg.id);致电msg.id(不清楚您在何处定义),那么您可以声明cb这样的功能

function cb(dunnowhat, msgs, id) {...}

或者我没理解。

如果您还没有msg.id,那么可能for .. in帮助

function cb(dunnowhat, msgs) {
  for (id in msgs) {
    console.log(msgs[id]);
  }
}