从循环调用Lambda并将引用传递给当前元素

时间:2018-03-30 06:38:13

标签: node.js aws-lambda aws-sdk

我有一个位于业务层(GoalFeed)的lambda,它的功能是聚合来自另外两个lamdbas(目标和用户)的数据。

GoalFeed调用目标(RESTful / GET)并对结果进行迭代,这是一种具有这种性质的东西(为简洁而省略代码):

lambda.invoke( goalsParms, function( err, data ) { 
    var items = data.Payload.body.Items;
    items.forEach( function( element ) { 
        lambda.invoke( teamsParms, function( err, data ) {
             // PROBLEM: element is always the *last* element here!!
        });
    });
});

所以我遇到的问题是我想在嵌套的lambda.invoke回调中传递(引用)每个元素,但我没有看到实现这一点的方法。 lambda.invoke(teams)调用中的引用元素总是给我列表中的 last 元素。

如何在嵌套的lambda.invoke(团队)的回调中传递元素/或正确引用它,这样当嵌套调用执行时,它将在初始调用期间获取当前元素的数据? / p>

1 个答案:

答案 0 :(得分:0)

我认为这与我如何处理链中的承诺有关,虽然创建一个单独的函数并用元素调用它似乎已经解决了问题。