【发布时间】:2019-10-18 14:49:13
【问题描述】:
以下代码从 S3 获取 csv 数据并将其转换为 JSON。
我收到.then is not a function 以下错误。可能是什么问题?
var Papa = require('papaparse');
var AWS = require('aws-sdk')
let deferred = this.$q.defer();
s3.getObject(params, function (err, data) {
if (err) {
//console.log(err, err.stack);
deferred.reject(err);
}
else {
const csv = data.Body.toString('utf-8');
const headers = 'id,start,end,count';
const parsed = Papa.parse(headers + '\n' + csv, parseOptions);
var parsedData = parsed.data;
console.log(parsedData); //this works
deferred.resolve(parsedData); // resolve the deferred with the data
}
return deferred.promise;
}).then(function(parsedData) {
console.log(parsedData);
}).catch( function(err) {
console.log(err, err.stack);
});
}
【问题讨论】:
-
如果您将回调函数传递给
s3.getObject(),我敢打赌它不会返回 Promise。不要混合两种风格;将回调代码也放入.then()。
标签: javascript node.js angularjs callback