Если функция возвращает Promise
и помечено как async
, возвращается ли оно Promise<Promise<DoWorkResponse>>
?
tslint
говорит мне, что я должен оставить функцию отмеченной как асинхронная. Я обеспокоен тем, что я как-то вдвойне оборачиваю обещание, что клиент Lambda
вернется.
const doWork = async (event: MyEvent): Promise<DoWorkResponse> => {
return new Lambda({ region: process.env.region })
.invoke({
FunctionName: process.env.doWorkLambdaName,
InvocationType: 'RequestResponse',
LogType: 'Tail',
Payload: JSON.stringify(event),
})
.promise()
.then((response: Lambda.InvocationResponse) => {
if (response.StatusCode !== 200) {
const errorMessage = `Error occurred invoking DoWork Lambda. ${response}`;
console.error(errorMessage);
throw new Error(errorMessage);
}
return JSON.parse(response.Payload as string);
});
};