s3.getObject(params, function (err, data) {
...
return deferred.promise;
}).then(function(parsedData) {
...
})
s3.getObject()
представляется API-интерфейсом в стиле обратного вызова, который НЕ возвращает обещание. Конечно, это обратный вызов , кажется, но сама функция getObject()
этого не делает.
Что вам нужно сделать, это преобразовать s3.getObject()
, чтобы вернуть обещание. Узел имеет utils.promisify()
, который будет принимать API в стиле обратного вызова и возвращать версию этой функции, которая возвращает обещание. Вы, вероятно, можете сделать:
const util = require('util')
const getObject = util.promisify(s3.getObject)
getObject(params)
.then(function(parsedData){
...
})