不明白为什么我的异步等待在我的 lambda 函数中不起作用

开发商5595

所以我有一个 lambda 将多个存储桶作为参数,我想遍历每个存储桶并将所有条目推送到一个数组中。

我知道 s3.listObjectsV2 是一个异步函数,所以我在它前面添加了一个 await 但由于某种原因,代码仍然先控制台记录 allData,然后运行 ​​listObjects 函数。

我不明白为什么 async await 不等待 listobjects 首先完成然后转到 console.log(allData)

这是代码:

const AWS = require('aws-sdk')
const S3 = new AWS.S3();


exports.listObjects = function(params) {
     return new Promise(async(resolve, reject) => {
         var allData=[]
         
         for (const param of params){
          await S3.listObjectsV2(param, (err, data) => {
             if (err) return reject(err)
             allData.push(data)
             //resolve(data)    
            
         }) 
         }
         console.log(allData)
        
         
     })
 }

 
彼得·阿隆·赞泰

您的 lambda 处理程序本身应该是异步的,然后就可以了:

const AWS = require('aws-sdk');
const S3 = new AWS.S3();

exports.listObjects = async function(params) {
  const allData = [];
  for(const param of params) {
     const result = await S3.listObjectsV2(param).promise();
     console.log(result);
     allData.push(result);
  }
  return allData;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用lambda的递归函数,为什么这不起作用?

为什么我的lambda不起作用?

为什么异步/等待在我的ASP.net 5控制台应用程序中不起作用?

不明白为什么我不能调用函数

异步/等待在我的示例中不起作用

我不明白的简单lambda函数

我不明白为什么lambda方案有效

为什么Dynamodb.put在Lambda函数中不起作用?返回null。如何调试?

我不明白为什么for循环不起作用

我不明白为什么在我的代码中使用“”会起作用,但是与“”相同的代码却不起作用

为什么这样工作?我不明白为什么我的代码可以在C中工作

全局语句不起作用,我不明白为什么

我不明白为什么我的.find函数不起作用

我不明白为什么我的石头,剪刀布游戏中的得分不起作用

我不明白为什么这个查询不起作用

JQuery、PHP 和 mySQL 帮助。我不明白为什么这不起作用

我不明白为什么cordova 链接和Javascript 编码不起作用

Java:我不明白为什么这不起作用

我不明白为什么我的计算不起作用

我不明白为什么这个 Array 不起作用?

不明白为什么我的函数没有被调用

为什么 hankcs/AhoCorasickDoubleArrayTrie 中的 lambda 示例不起作用?

我不明白为什么我的 Athena (Presto) SQL 查询不起作用

我不明白为什么这种线程情况不起作用 <线程锁不起作用>

不明白为什么我的 php 余弦相似度代码不起作用

我不明白为什么我的代码的“再玩”药水不起作用

从数据库中删除的实现不起作用,我不明白为什么

为什么捕获 lambda 在 C++ 中不起作用?

dplyr 中的多于/少于函数不起作用(或者我不明白为什么它们不起作用)