使用支持回调和承诺的Node AWS SDK。 https://aws.amazon.com/blogs/developer/support-for-promises-in-the-sdk/
使用q作为承诺库..
AWS.config.setPromisesDependency(q);
const headObjProm = this.s3Client.headObject(headParams).promise();
headObjProm
.then(ret => {
//ret is promise..
})
控制台记录ret
显示..
(resolve, reject) {
self.on('complete', function(resp) {
if (resp.error) {
reject(resp.error);
} else {
resolve(resp.data);
}
});
我在印象中ret
会出现数据或错误消息吗?
AWS上的文档都以回调方式完成。
如何在承诺中使用它?
答案 0 :(得分:3)
当您将Q
包初始化为要使用的承诺时,您需要从Promise
指定Q
属性。
AWS.config.setPromisesDependency(require('Q').Promise);
答案 1 :(得分:1)
由于const headObjProm = this.s3Client.headObject(headParams).promise();
是异步的,那么如何在异步函数中使用它并像这样使用await呢:
`const resolveHeadObject = async()=> await s3Client.headObject(headParams).promise()`
我使用await/async
语法,它对我有用。
如果必要的话,请不要忘记将.Promise
添加到您的Q
要求中。