본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Javascript/[중요] Javascript

자바스크립트 Promise

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 4. 27.

 

 

프로미스는 자바스크립트에서 동기 방식 처리를 위해 생긴 기술이다. 즉, 어떠한 행위를 걸어 놓고선 그 행위가 끝나면 다음 행위를 하라는 기술이다. 
간단하게, ajax같은 기술을 사용하면 데이터를 받으면서 다른행위를 할 수 있는 것과 반대되는 개념이다.
1번부터 5번까지의 할 일이 있다면 반드시 1번 끝난 이후에 2번하라 라고 명령을 할 수가 있다. 아래 예제코드를 보면,

function method(param){  //함수 선언
	return new Promise(function(resolve,reject){ //프로미스 객체로 리턴 내부의 변수는 당연히 바꾸어서 사용 가능하다.
		if(param != null){
			resolve('good working'); //resolve는 프로미스의 고유 기능, 성공시 수행하는 곳
		}
		else{
			reject(new Error("Request is failed")); //reject는 실패했을 시 실행되는 구간
		}
	});
}

method('argument').then(function(callbackData){
	console.log(callbackData);
}).catch(function(error){
	console.log(error);
});

위  코드를 실행하면 콜백으로 넘어온 데이터가 잘 출력됨을 알 수 있다.
만약 실행하는 파라미터에 null값을 넣는 다면 catch문이 발동하여 에러로그를 볼 수 있다.
이러한 기능을 활용하면...then을 여러번 쓸 수 있다.(then지옥..)

method('argument').then(function(callbackData){
	console.log(callbackData);
}).then(function(){
	console.log('then 1');
}).then(function(){
	console.log('then 2');
}).then(function(callbackData){
	console.log('then 3');
});

순차적으로 내용이 출력됨을 볼 수 있다.
물론 async와 await를 활용해서도 동일한 기능구현이 가능하다.

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글