在.then或.catch函数中终止nodejs aws lambda函数

考虑以下用nodejs编写的AWS lambda函数。

export const handler: APIGatewayProxyHandler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {
  var file;

  await getFile()
    .then((filedata): void => {
      file = filedata;
    }).catch((e): void => {
      < Return error response and stop execution >
    });

  await saveFile(file)
    .then((result): void => {

    }).catch((e): void => {
      < Return error response and stop execution >
    });
  return {statusCode: 200};
};

如果getFile失败,我希望lambda函数只返回一个错误并停止执行。

我不能从.catch语句返回响应,因为它在错误的作用域中。

我可以用try/catch包围整个处理程序,然后从.catch语句抛出一个错误,如下所示:

try {
  await getFile()
    .then((filedata): void => {
      file = filedata;
    }).catch((e): void => {
      throw new Error("Error getFile");
    });

  await saveFile(file)
    .catch((e): void => {
      throw new Error("Error saveFile");
    });
  return {statusCode: 200, body: "success"};
} catch (error) {
  return {statusCode: 500, body: error.message};
}

...but我想有更好的方法吗?

你会怎么做?

谢谢你的帮助!

转载请注明出处:http://www.lvguanye.net/article/20230526/1703353.html