这是我的问题。鉴于我正在将数据保存在数组中:
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。
答案 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]);
}
}