异步在迭代中没有整个对象

时间:2017-02-28 09:58:02

标签: node.js async.js

我使用async.eachSeries迭代数组。该数组看起来像:

{ filename: '20171-132.pdf',
  content: [base64 encoded file]
}

通过循环我遍历项目以获取内容。

async.eachSeries(attach, function(item, callback){
    console.log("ITEM", item);
    var attachment = {
        filename: item.filename,
        content: item.content.split("base64")[1],
        encoding: 'base64'
    }

    attachments.push(attachment);
    callback();
}, function(){
    console.log("done");
})

但是,在'item'的日志中,我只有文件名,结果是代码在item.content.split上停止,因为它是未定义的。 任何人都知道这里发生了什么,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您正在处理一个对象,而不是一个数组。

{ 
   filename: '20171-132.pdf',
   content: [base64 encoded file]
}

方括号是数组的JSON表示。 因此,如果item看起来像这样;

[
    { 
       filename: '20171-132.pdf',
       content: [base64 encoded file]
    }
]

然后我猜它会解决你的问题。