Javascript 在AWS Lambda上调用函数async
我试图以异步方式调用函数,因为我不想等待响应 我已经阅读了AWS文档,其中说使用Javascript 在AWS Lambda上调用函数async,javascript,node.js,aws-sdk,Javascript,Node.js,Aws Sdk,我试图以异步方式调用函数,因为我不想等待响应 我已经阅读了AWS文档,其中说使用InvocationType作为Event,但它只有在执行.promise()时才有效 非工作版本: 工作版本: 有人能告诉我为什么会这样吗?返回一个实例,该实例不会自动执行请求。它是在调用send()之前不会发送的请求的表示形式 这就是为什么后一个版本有效,而前一个版本无效。调用.promise()时发送请求 // a typical callback implementation might look like
InvocationType
作为Event
,但它只有在执行.promise()
时才有效
非工作版本:
工作版本:
有人能告诉我为什么会这样吗?返回一个实例,该实例不会自动执行请求。它是在调用send()
之前不会发送的请求的表示形式
这就是为什么后一个版本有效,而前一个版本无效。调用.promise()
时发送请求
// a typical callback implementation might look like this
lambda.invoke({
FunctionName: 'rock-function',
InvocationType: 'Event',
Payload: JSON.stringify({
queryStringParameters: {
id: c.id,
template: c.csvTemplate,
},
}),
}, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
// ... or you could process the promise() for the same result
lambda.invoke({
FunctionName: 'rock-function',
InvocationType: 'Event',
Payload: JSON.stringify({
queryStringParameters: {
id: c.id,
template: c.csvTemplate,
},
}),
}).promise().then(data => {
console.log(data);
}).catch(function (err) {
console.error(err);
});
lambda.invoke({
FunctionName: 'rock-function',
InvocationType: 'Event',
Payload: JSON.stringify({
queryStringParameters: {
id: c.id,
template: c.csvTemplate
}
})
}).promise()
// a typical callback implementation might look like this
lambda.invoke({
FunctionName: 'rock-function',
InvocationType: 'Event',
Payload: JSON.stringify({
queryStringParameters: {
id: c.id,
template: c.csvTemplate,
},
}),
}, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
// ... or you could process the promise() for the same result
lambda.invoke({
FunctionName: 'rock-function',
InvocationType: 'Event',
Payload: JSON.stringify({
queryStringParameters: {
id: c.id,
template: c.csvTemplate,
},
}),
}).promise().then(data => {
console.log(data);
}).catch(function (err) {
console.error(err);
});