Promise와 return - 1

gwanghyunjeon·2022년 5월 30일
0

일단 코드 부터

const printString = (string) => {
  return new Promise((resolve, reject) => {
    setTimeout(
      () => {
        console.log(string)
        resolve()
      },
      Math.floor(Math.random() * 100) + 1
    )
  })
}

const printAll = () => {
  printString("A")
  .then(() => {
    return printString("B") // 여기!
  })
  .then(() => {
    return printString("C") // 여기!
  })
}

printAll();

'여기!'라고 표시해둔 행에 return을 빼면, B와 C가 랜덤하게 실행된다.
즉, 어쩔땐 ABC..어쩔땐 ACB...

왜 이렇게 랜던하게 나오는지는 알고있다.
setTimeout 함수를 통해 랜덤하게 시간을 부여하고 있기 때문에,
B가 먼지 실행되었더라도, 때에 따라서는 C가 더 빨리 결과가 나올 수 있기 때문이다.

중요한것은 여기서 return을 조합한 .then을 사용하면 순서를 제어할 수 있게 된다.
이유가 뭘까?
Promise 함수와 then의 개념을 좀 더 공부해보고 결론을 내보도록 하자.


to be continue...

profile
발자취를 기록해봅시다

0개의 댓글