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

Posted

技术标签:

【中文标题】Node.js:如何将向量传递给函数?【英文标题】:Node.js: How Do I Pass A Vector To A Function? 【发布时间】: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 例如。

【问题讨论】:

【参考方案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”。我已经更新了代码。

以上是关于Node.js:如何将向量传递给函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 node.js 环境中将查询语句传递给 bigquery

如何将向量传递给函数?

如何使用向量将多个字符串传递给函数

如何将向量传递给函数参数(我需要指针吗?)

如何在不使用向量的情况下将数组传递给函数?

如何通过将向量元素传递给函数来更改它们