【问题标题】:Node.js: How Do I Pass A Vector To A Function?Node.js:如何将向量传递给函数?
【发布时间】:2011-04-15 08:30:22
【问题描述】:

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

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 例如。

【问题讨论】:

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


    【解决方案1】:

    如果你用正确的msg.id 调用cb(undefined, msgCache, msg.id);(不清楚你在哪里定义它),那么你可以像这样声明你的cb 函数

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

    或者我不明白。

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

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

    【讨论】:

    • 那行不通。我传递了很多信息,而不仅仅是一个。如果有 2 条消息,我已经用“msgs”的结果编辑了问题。
    • 我在调用 cb() 时没有“msg.id”。我已经更新了代码。
    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多