Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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 在AWS Lambda上调用函数async_Javascript_Node.js_Aws Sdk - Fatal编程技术网

Javascript 在AWS Lambda上调用函数async

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

我试图以异步方式调用函数,因为我不想等待响应

我已经阅读了AWS文档,其中说使用
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);
});