기반을 다지자 ES6

종장:Promise, async & await

Jungsoomin :) 2020. 10. 2. 09:16

콜백 지옥의 해결 객체

  • resolve : 성공 콜백 then 메서드로 호출
  • reject : 실패 콜백 catch 메서드로 호출
  • 메서드 호출시 인자전달 가능
function sayHello(name) {
//resolve 실행완료 reject 실행실패
 return new Promise( (resolve, reject) => {
	setTimeout( () => {
		console.log(`내 이름은 ${name} 이야.`);
		resolve(`${name}`);
		reject(`Error`);
	}, 2000 );
} );
}

sayHello('soomin')
	.then((name) => {// 실행 완료시 호출
	console.log(`그래 안녕 ${name}`)
})
	.catch(() => {
	console.log(`실행 실패`)
}); 

ES7 async & await

  • 비동기 함수의 호출은 async 로 선언한다.
  • await 는 해당 함수 호출 전까지 다음 블록실행을 하지 않는다.

await , async 는 외부정보를 요청할 때에 많이 쓴다. 예외처리와 붙어다닌다.

 

		//async 비동기처리 선언
        async functionName (...) {
        						//await 기다려야함을 의미
				const result = await asyncFunction()
		}
        
        
function sayHello(name) {
//resolve 실행완료 reject 실행실패
 return new Promise( (resolve, reject) => {
	setTimeout( () => {
		console.log(`내 이름은 ${name} 이야.`);
		resolve(`${name}`);
		reject(`Error`);
	}, 2000 );
} );
}

//비동기 선언
async function foo(name) {
	//대기후 실행 완료시 resolve 의 리턴 값을 받겠다.
	const resultName =await sayHello(name);
	//await 함수 실행 후 실행된다. <<<<
	console.log('2초 뒤에 실행될 코드')
} 

foo('soomin');

 

'기반을 다지자 ES6' 카테고리의 다른 글

가상의 폼데이터인 FormData 객체를 폼 DOM 객체를 가지고 생성하기  (0) 2020.10.14
예외처리  (0) 2020.10.02
모듈  (0) 2020.10.01
Class  (0) 2020.10.01
전개연산자 Spread  (0) 2020.10.01