【发布时间】:2018-09-19 13:22:01
【问题描述】:
我想创建一个循环 AWS lambda 函数的 Promise 节点函数,但我看不到 bluebird Promise 怎么可能。 你有这个实现的例子吗?
var lambda = new AWS.Lambda();
const lambdaInvokeAsync = Promise.promisify(lambda.invoke, {context:
lambda});
for(var page = 1; page <= totalPages; page++){
var params = {
FunctionName: MOCK_API_FUNCTION /* required */,
Payload: '{"page":'+page+', "limit": '+limit+', "retrievalDate":'
+retrievalDate+ '}';
};
return lambdaInvokeAsync(params)
.then((result) => {
console.log('Successfully retrieve data');
var dataPerPage = JSON.parse(result.Payload).data;
dataArr.push(dataPerPage);
return dataArr;
});
}
【问题讨论】:
-
为什么把
return放在lambdaInvokeAsync(params)...前面?它存在for循环 -
您的问题不是承诺,而是您在循环内部
return。即使没有任何承诺,那也行不通。
标签: node.js amazon-web-services promise aws-lambda bluebird