考虑以下用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