[JS] async/await

lyshine·2023년 4월 15일
0

스터디

목록 보기
4/7

async/await를 활용하여 보다 직관적인 비동기 처리가 가능하다.

async

  • async 키워드를 함수에 붙이게되면 자동적으로 그 함수는 Promise 객체를 반환하게 된다. (비동기 처리 함수) → then() 메서드를 사용가능
  • async를 붙인 함수의 리턴값은 resolve 수행값이 된다. 즉, then의 결과값이 된다.
async function helloAsync() {
	return "hello Async";
}

console.log(helloAsync());//Promise{<pending>}

helloAsync().then((res)=>{
	console.log(res);//hello Async
})

delay 비동기함수

function delay(ms){
	return new Promise((resolve) => {
		setTimeout(()=>{
			resolve();
		},ms);
  })
};
------

//위의 코드 간결하게 작성
function delay(ms){
	return new Promise(resolve, ms);
 })
};

async function helloAsync() {
	return delay(3000).then(()=> {
		return "hello Async";
	});
}

helloAsync().then((res)=>{
	console.log(res);
}); //3초후 hello Async 출력

await

  • await 키워드를 사용하면 간결하게 코드를 작성할 수 있다. then 메서드 필요없음.
  • 비동기 함수의 호출 앞에 붙이게 되면, 비동기 함수가 마치 동기적인 함수처럼 작동한다.
  • async 키워드가 붙은 함수 내에서만 사용할 수 있다.
async function helloAsync() {
	await delay(3000);
	return "hello async";
}

async function main() {
	const res = await helloAsync();
	console.log(res);
}

main(); //3초후 hello Async 출력

0개의 댓글