[TIL]데브코스 프론트엔드 0811

hyojeong·2021년 8월 11일
0

데브코스

목록 보기
8/50
post-thumbnail

📚TIL

day9

Promise(프라미스)

  • JavaScript에서 비동기를 간편하게 처리할 수 있도록 도와주는 객체
  • 정해진 장시간의 기능을 수행한 후 정상적 수행했는지 실패했는지를 알림
  • state : pending - 수행 중, fulfilled - 완료, rejected - 실패
  • promise 는 executor라는 callback 함수를 전달해줘야 하는데 이 callback함수는 resolve,reject라는 두가지 callback함수를 받음
  • 시간이 걸리는 무거운 작업들을 promise를 만들어서 비동기적으로 처리
  • 새로운 promise가 만들어질 때는 즉시 자동적으로 내부 코드가 실행됨
  • promise.then은 promise를 리턴하기 때문에 그 리턴된 promise에 catch, finally를 수행할 수 있음
//producer : resolve, reject
const promise = new Promise((resolve, reject) => {
	console.log('안녕하세요');
    setTimeout(() => {
    	//resolve('hyoco');		//기능을 수행해서 최종 데이터를 전달
        reject(new Error('네트워크 연결 실패'));	
        //기능을 수행하다 문제가 생길 시 호출
    }, 2000);
});

//consumers : then, catch, finally
promise
    .then((value) => {
		console.log(value);	//resolve에서 받아온 값을 가져옴
	})
    .catch(error =>	{
    	console.log(error);		//rejected에서 받아온 값을 가져옴
    })
    .finally(() => {
    	console.log('안녕히가세요');		
        //operation의 성공,실패없이 수행되며 마지막으로 수행하고 싶은 기능을 넣음
    });
    

🌊하루를 마치며

오늘 강의는 promise에 대한 내용들로 이뤄져 있었는데 처음 접하는 내용이라 굉장히 생소했다. 사실 강의를 밀리고 싶지 않은 마음에 꾸역꾸역 강의를 들었는데 이해가 쉽게 되지 않아 강의 듣는 것을 멈췄다. 그래서 오늘은 강의를 들었지만 강의 내용을 공부했다고 할 수 없어서 따로 공부한 promise에 대한 것들만 정리했다. 오늘 들은 강의는 다시 들은 후에 이해를 바탕으로 TIL을 작성할 계획이다.

공부한 내용도 아직 기초중에 기초이기 때문에 실무에서 어떤식으로 쓰일지 어떻게 활용하면 좋을지 잘 모르겠다. 무거운 작업들을 비동기적으로 처리할 수 있다는 점을 잘 생각해보면서 공부해야할 것 같다. 코드가 잘 수행되고 어떤 에러가 발생했는지를 알려주는 것은 편리한 기능이라는 생각이 들었다.

profile
Front-end Develop🥰

0개의 댓글