Javascript lambda.invoke是否需要承诺包装器?
我有以下承诺。所有例子 lambda.invoke是否需要承诺包装器 引用此 具有回调签名,这通常意味着您需要将其包装在承诺中,但如果仔细观察,您会注意到它返回一个对象,其中包含一个方法。它还记录了 如果未提供回调,则必须调用返回的请求对象上的AWS.Request.send来启动请求 对于AWS.Request.promise: 发送请求并返回“thenable”承诺 因此,生成的get1id如下所示:Javascript lambda.invoke是否需要承诺包装器?,javascript,node.js,amazon-web-services,promise,aws-lambda,Javascript,Node.js,Amazon Web Services,Promise,Aws Lambda,我有以下承诺。所有例子 lambda.invoke是否需要承诺包装器 引用此 具有回调签名,这通常意味着您需要将其包装在承诺中,但如果仔细观察,您会注意到它返回一个对象,其中包含一个方法。它还记录了 如果未提供回调,则必须调用返回的请求对象上的AWS.Request.send来启动请求 对于AWS.Request.promise: 发送请求并返回“thenable”承诺 因此,生成的get1id如下所示: function get1(id) { const params = {
function get1(id) {
const params = {
FunctionName: 'myLambda', // the lambda function we are going to invoke
InvocationType: 'RequestResponse',
Payload: { id },
};
return lambda.invoke(params).promise().then(({ Payload }) => JSON.parse(Payload));
}
具有回调签名,这通常意味着您需要将其包装在承诺中,但如果仔细观察,您会注意到它返回一个对象,其中包含一个方法。它还记录了
如果未提供回调,则必须调用返回的请求对象上的AWS.Request.send来启动请求
对于AWS.Request.promise:
发送请求并返回“thenable”承诺
因此,生成的get1id如下所示:
function get1(id) {
const params = {
FunctionName: 'myLambda', // the lambda function we are going to invoke
InvocationType: 'RequestResponse',
Payload: { id },
};
return lambda.invoke(params).promise().then(({ Payload }) => JSON.parse(Payload));
}
如果请求失败,API将拒绝承诺,因此调用代码中的.catch就足够了。你不应该用一个新的错误“error”来掩盖真正的错误,这是一种不好的做法,因为它阻止你看到问题的原因,所以我在回答中忽略了这一点。我如何添加被拒绝的部分?因为我的捕获物没有被捕获。我可以将错误更改为更明显的错误。除非出现错误,否则不会调用catch。它没有被调用这一事实意味着代码正在工作。在它返回之前,我如何/在何处根据有效负载添加条件?我现有的错误处理在何处适合此情况?@Rod如果请求失败,API将拒绝该承诺,因此调用代码中的.catch就足够了。你不应该用一个新的错误“error”来掩盖真正的错误,这是一种不好的做法,因为它阻止你看到问题的原因,所以我在回答中忽略了这一点。我如何添加被拒绝的部分?因为我的捕获物没有被捕获。我可以将错误更改为更明显的错误。除非出现错误,否则不会调用catch。它没有被调用这一事实意味着代码正在工作。在它返回之前,我如何/在何处添加基于有效负载的条件?