signUp
와 amazon-cognito-identity-js
.저는 서버리스 프레임 워크를 사용하여 압축하고 배포합니다. 런타임은 노드 12입니다.
+++++++
const wrapperHandler: Handler<CognitoUserPoolEvent> = async (
event,
context,
callback
) => {
let error = null;
try {
await myAsyncFunc();
} catch (e) {
error = e;
}
callback(error, event);
};
모든 것이 잘 작동하며 실제 끝점 람다에 오류를 반환 할 수 있으며 오류가 없으면 논리가 실행됩니다.
그러나이 경고는 매우 성가시다.
코드는 preSignUp
CloudWatch 용입니다.
경고 : 콜백 / 응답이 이미 전달되었습니다. 함수가 콜백을 호출하고 약속도 반환 했습니까? 자세한 내용은 https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html을 참조하십시오.
코드에서 콜백을 호출하기 전에 아무것도 반환하지 않았습니다. 왜 이런 일이 발생합니까? 그리고 그것을 해결하는 방법.
오류 메시지가 표시되면 콜백 스타일과 async/await
스타일을 혼합 하고 경고를 표시합니다.
나는 사용을 선호합니다 async/await
. 즉, 핸들러 함수는 항상 비동기 함수 (비동기 키워드 사용)이므로 callback
함수 호출 대신 결과를 반환하고 callback
핸들러 함수에 매개 변수가 필요하지 않습니다 .
오류가 발생하면 오류를 발생시킵니다 ( try/catch
블록 없이 ).
const wrapperHandler: Handler<CognitoUserPoolEvent> = async (
event,
context,
// callback
) => {
// let error = null;
try {
await myAsyncFunc();
} catch (e) {
// error = e;
// Do something with your error
throw e;
}
// callback(error, event);
return event; // just return result for handler function
};
간단하게 :
const wrapperHandler: Handler<CognitoUserPoolEvent> = async (
event,
context,
) => {
await myAsyncFunc();
return event;
};
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다