Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

then과 함께 promise에 finally를 사용하고 Javascript에서 catch하는 방법은 무엇입니까?

<시간/>

약속이 이행되거나 거부되면 finally 메서드에 지정된 콜백 함수가 호출됩니다. finally() 메서드도 Promise를 반환합니다.

이것은 Promise가 처리된 후 Promise가 성공적으로 이행되었거나 거부되었는지 여부에 관계없이 코드를 실행할 수 있는 방법을 제공합니다. 예를 살펴보겠습니다.

예시

new Promise(
   (resolve) => setTimeout(resolve("success"), 1000)
).then(val => console.log(val)).finally(() => console.log("Promise complete!"))

출력

success
Promise complete!

이제 Promise가 실패하면 어떻게 되는지 살펴보겠습니다 -

예시

// No method get on undefined. This will throw an error
new Promise(() => undefined.get())
   .then(val => console.log(val))
   .catch(err => console.log("Failed!"))
   .finally(() => console.log("Promise complete!"))

출력

Failed! 
Promise complete!

두 경우 모두 실패하거나 성공했는지 여부에 관계없이 약속이 finally 문을 실행했습니다.