콜백함수에대해서 간단하게 개념정리를해보자
이전에 고차함수시간에 언급됫던 함수로 함수안에 함수가들어가는데 큰함수로 작은함수로 호출하는개념을말한다.
자바스크립트에 내장된 setTimeout 이라는 함수로 예시를들면
setTimeout( ()=>consolelog(2),1000);
()=>consolelog(2) ->실행할함수
1000 얼마뒤에 발동되는지
여기서 실행할함수를 콜백함수라고한다.
(간단하게 화살표함수로 나타냈지만 function (,)로 나타낼수도있다.
promise 비동기적인것 수행(콜백함수대신)
state->상태
pending->fulfilled(완료)
rejected-> 실패
1.Producer
const promise = new Promise((resolve,reject) =>{
console.log('doing something...');
setTimeout( ()=>{
resolve('ellie');}, 2000);
reject(new Error('no network'));
});
프로미스안에 실행함수는 프로미스를 정의하는순간 실행되기때문에 만약 유저가 사용을 원치않을경우에도 자동으로 실행되기떄문에 이점을 주의하여 사용할것
(when new Promise is created, the executor runs automatically)
promise.then(value=>{
console.log(value);
});
then->성공했을떄( resolve됫을떄 출력하는 메서드)
.catch(error =>{
console.log(error);});
-->catch 실패했을떄 콘솔로그호출가능.
.finally(()=>{console.log('finally')});
->성공실패와관계없이 그냥 호출됨.
promise chaining