대기(pending): 이행하지도,거부하지도 않은 초기 상태.
이행(fulfilled): 연산이 성공적으로 완료됨.
거부(rejected): 연산이 실패함.

출처:https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise
pending 상태에서는 객체 생성을 하고,그 객체 내에서 통신을 하였을 때, 성공을 하게 되면 fulfilled 상태를 진행하고 실패를 하게 되면 rejected 상태를 진행한다.
이제 이 요청 상태의 개념에 들어가기 전에 앞서 비동기처리 방식의 콜백함수를 이해하고 넘어가자.
특정 함수 내에서 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수를 지칭한다.
파라미터로 전달 받은 함수
파라미터로 콜백함수를 전달받고 함수 내부에서 필요할 때 콜백함수를 호출할수 있다.
function add (x, y) () {
return x + y
}
function add (x, y, callback){
let result = x * y
callback(result)
}
function result (data) {
console.log(data, "콜백함수 실행")
}
add(5, 10, result)
그리고 add 함수를 실행시키면 add 함수 안에서 인자로 들어간 다른 함수가 실행됩니다.
이럴 때 add 함수의 인자로 사용된 result 함수를 callback 함수라고 부릅니다.
<button onClick={handleClickFunction}></button>
Callback 함수는 2가지로 나눌수 있습니다.
1.동기적 함수
2.비동기적 함수
비동기적 콜백 함수의 가장 좋은 예는 settimeout 입니다.
비동기적 함수는 결과를 기다리지 않고 다음 코드를 실행하는 과정을 말합니다.
function Test () {
console.log("3초 기다리기")
}
setTimeout(Test,3000);
console.log('이건 바로 실행')
위의 코드를 실행시킵니다.
아래처럼 결과가 나옵니다.
"이건 바로 실행"
"3초 기다리기"
분명 setTimeout()을 먼저 실행시켰지만, 아래있는 console.log()가 먼저 결과창에 보입니다. 이러한 이유는 자바스크립트 코드가 비동기적으로 코드를 실행시키기 때문입니다.
참고:
https://satisfactoryplace.tistory.com/18
https://www.notion.so/dingco/6-Node-8579c831bd66403f93ad01b08c9db639#5f7c3abc2c2f468fba4b82eb9fab05df