> 웹 프론트엔드 > JS 튜토리얼 > TypeScript에서 Async/Await와 함께 Try...Catch를 올바르게 사용하는 방법은 무엇입니까?

TypeScript에서 Async/Await와 함께 Try...Catch를 올바르게 사용하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-09 20:10:16
원래의
519명이 탐색했습니다.

How to Correctly Use Try...Catch with Async/Await in TypeScript?

올바른 시도...Async/Await를 사용하여 구문 캐치

TypeScript와 같은 언어에서 Async/Await의 비동기 특성을 활용하는 경우 올바른 구문을 사용하는 것이 중요합니다. 오류 처리를 위해. try...catch 블록 내에서 대기할 변수의 배치와 관련하여 한 가지 일반적인 질문이 발생합니다.

모범 사례

일반적으로 변수 선언을 내부 try 블록을 삭제하고 거기에 값을 할당합니다. 이를 통해 변수 생성 범위 내에서 오류를 처리할 수 있으며 변수에 항상 유효한 값이 포함되어 있는지 확인합니다.

try {
    const createdUser = await this.User.create(userInfo);

    console.log(createdUser);
    // business logic goes here
} catch (error) {
    console.error(error); // from creation or business logic
}
로그인 후 복사
외부 선언에 대한 대안

약속 할당 내에는 세 가지 대안이 있습니다:

  1. 변수 테스트 할당: 블록 외부에 변수를 선언하고 해당 할당을 확인합니다.
let createdUser;
try {
    createdUser = await this.User.create(userInfo);
} catch (error) {
    console.error(error); // from creation
}
if (createdUser) { // user was successfully created
    console.log(createdUser);
    // business logic goes here
}
로그인 후 복사
  1. 오류 유형 테스트: 해당 유형에 대해 발견된 예외를 테스트하고 처리해 따라서:
try {
    const createdUser = await this.User.create(userInfo);
    // user was successfully created
    console.log(createdUser);
    // business logic goes here
} catch (error) {
    if (error instanceof CreationError) {
        console.error(error); // from creation
    } else {
        throw error;
    }
}
로그인 후 복사
  1. Then 콜백: try/catch 블록 대신 두 개의 콜백과 함께 then 메서드를 사용하세요.
await this.User.create(userInfo).then(createdUser => {
    // user was successfully created
    console.log(createdUser);
    // business logic goes here
}, error => {
    console.error(error); // from creation
});
로그인 후 복사
각 대안에는 장단점이 있으므로 가장 적합한 것을 선택할 때 애플리케이션의 특정 요구 사항을 고려하십시오. 접근합니다.

위 내용은 TypeScript에서 Async/Await와 함께 Try...Catch를 올바르게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿