Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript lambda.invoke是否需要承诺包装器?_Javascript_Node.js_Amazon Web Services_Promise_Aws Lambda - Fatal编程技术网

Javascript lambda.invoke是否需要承诺包装器?

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 = {

我有以下承诺。所有例子

lambda.invoke是否需要承诺包装器

引用此

具有回调签名,这通常意味着您需要将其包装在承诺中,但如果仔细观察,您会注意到它返回一个对象,其中包含一个方法。它还记录了

如果未提供回调,则必须调用返回的请求对象上的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));
}
具有回调签名,这通常意味着您需要将其包装在承诺中,但如果仔细观察,您会注意到它返回一个对象,其中包含一个方法。它还记录了

如果未提供回调,则必须调用返回的请求对象上的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。它没有被调用这一事实意味着代码正在工作。在它返回之前,我如何/在何处添加基于有效负载的条件?