AWS S3 非同期関数を持ち上げようとしていますが、奇妙なエラーが発生します。次のコードを考えると、
var s3 = new AWS.S3();
var when = require('when');
var nodefn = require('when/node');
var getObjectP = nodefn.lift(s3.getObject);
getObjectP({
Bucket: 'bucket_name',
Key: 'key_name'
})
.then(function(data) {
...
}, function(err) {
...
});
このエラーが発生します。
Object #<Object> has no method 'makeRequest'
通常は次のgetObject
ようになります (Promise の代わりにコールバックを使用すると問題なく動作します)。
s3.getObject({ ... }, function(err, data) {
...
});
私は誤用していnodefn.lift
ますか?それはかなり簡単に思えます。ここに興味のある人のためのドキュメントがあります。https://github.com/cujojs/when/blob/master/docs/api.md#nodelift