콜백 지옥의 해결 객체
- 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 |