【发布时间】:2021-03-10 12:15:21
【问题描述】:
我正在使用 AWS 开发工具包,并且正在使用 Lambda 运行此代码。我注意到,当我在异步函数中使用带有回调的上传函数时,它不会执行该函数。
const aws = require('aws-sdk');
exports.handler = async (event) => {
const s3 = new aws.S3();
console.log('START UPLOAD')
const params = {
Bucket: 'practice-bucket',
Key: 'hello.txt',
Body: "hello",
}
s3.upload(params, function(err, data) {
console.log(err, data);
});
};
我知道如何完成这项工作。通过将函数更改为非异步函数或使用 await 并将 upload() 的响应转换为承诺。但是我还是很好奇它为什么不执行upload()函数呢?我希望它只是执行它只是一个常规功能,因为我没有告诉它等待。
【问题讨论】:
-
尝试上传文件时可能出错。
-
显然,无论有没有
async,它总是在执行.upload()函数,而你的问题的前提只是混淆了。
标签: javascript node.js aws-sdk