Meme's IT

[JS] Node js에서 Promise 쓰기 본문

FrontEnd/JavaScript

[JS] Node js에서 Promise 쓰기

Memez 2023. 10. 31. 15:45

Promise가 뭐더라..?

 

 

# Promise

다음에 할 행동을 약속한다

  • resolve( ): Promise 객체가 성공할 때 호출되어 결과 값을 전달
  • reject( ): Promise 객체가 실패할 때 호출되어 결과 값을 전달
  • then( ): 로직 이행 성공 시 then으로 넘어감(resolve 호출 시)
  • catch( ): 로직 이행 실패 시 catch로 넘어감(reject 호출 시)

 

간단한 Promise를 이용하는 코드

const myPromise = new Promise((resolve, reject) => {
    let num = 3
    if (num === 0) {
        resolve('성공')
    } else {
        reject('로직 수행 실패!')
    }
})

myPromise.then((result) => {
    console.log(result)
}).catch((error) => {
    console.log(`error는 ${error}`)
})

공식문서에서 더 공부하기


※ 참고

Promise의 상태

만약에 Promise 안에 if문이 없다면? 어떻게 될까

const myPromise = new Promise((resolve, reject) => {
    resolve('성공일까?')
    reject('실패일까?')
})

myPromise.then((result) => {
    console.log(result)
}).catch((error) => {
    console.log(`error = ${error}`)
})

성공이 나온다.. 왜?

resolve와 reject 중 먼저 호출되는 함수 기준으로 끝난다 -> return 같은 역할

그러므로 위에 나온 resolve가 먼저 호출되어서 성공이 나오는것

reject가 먼저 나온다면..? 위에 있는 reject가 먼저 호출되므로 실패가 나온다.

 

 

resolve와 reject를 모두 쓰고 then만 쓴다면?

→ 오류가 생김

 

 

 

 

'FrontEnd > JavaScript' 카테고리의 다른 글

[JS] JavaScript에서 import 써보기  (0) 2023.11.13
[JS] async와 await  (0) 2023.10.31
[JS] Axios  (0) 2023.10.30
[JS] 동기와 비동기  (0) 2023.10.30
[JS] 이벤트  (0) 2023.10.30