Node.js + Bluebird + csv:额外项[object Object]

时间:2014-06-07 15:24:00

标签: node.js csv promise bluebird

我有以下用于下载csv文件的代码:

function download_csv(symbol) {
    var req_url = url + '&s=' + symbol
    var filename = '/prices/' + symbol + '.csv'

    return request.getAsync(req_url)
    .then(function(resp) {
        fs.writeFileAsync(filename, resp)
    })
}

Promise.map(symbols, download_csv, {concurrency: 128})
.error(function(e) {console.error('error ocurred: ', e.message)})
.done(function() {console.log('done')})

当我打开csv文件时,第一行右移1列:

[object Object] Date    Open    High    Low Close   Volume  Adj Close

第一列应该是Date,而不是[object Object]。我的代码中有什么错误?

1 个答案:

答案 0 :(得分:1)

该值是[response, body]的数组,您可以.spread

function download_csv(symbol) {
    var req_url = url + '&s=' + symbol
    var filename = '/prices/' + symbol + '.csv'

    return request.getAsync(req_url).spread(function(response, body) {
        // Also add return statement here, very important
        return fs.writeFileAsync(filename, body)
    })
}

这是因为回调签名是:

callback(err, response, body)