1

我有以下用于下载 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

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

4

1 回答 1

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)
于 2014-06-07T17:15:47.243 回答