본문 바로가기
프로그래밍언어/JavaScript

[Javascript] anync & await 비동기처리를 동기처럼

by Yikanghee 2022. 4. 7.
  • 직관적인 비 동기 처리 코드 작성할 수 있음
  • anync
function hello() {
	return "hello";
}

async function helloAsync() {
	return "hello Async";
} 

console.log(hello());
console.log(helloAsync());
//hello
//Promise {<pending>}
//함수에 async를 붙이면 Promise를 반환하는 비동기 처리를 함

helloAsync().then(res) = {
	console.log(res);
});
//hello Async
//then을 사용하여 값을 가져올 수 있음
  • delay
function delay (ms) {
	return new Promise((resolve) => {
		setTimeout(resolve, ms);
	});
}

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

// 3초 기다렸다가 비동기 통신

helloAsync().then((res) => {
	console.log(res);
});
  • await
function delay (ms) {
	return new Promise((resolve) => {
		setTimeout(resolve, ms);
	});
}

async function helloAsync() {
	await delay(3000);
	return "hello async";
}

// 3초 기다렸다가 비동기 통신
// await은 async 키워드가 붙은 함수에서만 사용가능
// await를 사용한 구문은 동기적으로 실행됨
// 즉, 위에서부터 순서대로 작동하게 됨

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

// main 함수를 만들어 그 안에 async / await함수를 넣으면
// 3초를 기다린 후 원하는 값을 띄워줌
// async / await을 활용하여 비동기 코드 Promise를 마치 동기적으로 처리하는 방법을 알아봄

  • 결론
    • async / await을 활용하여 비동기 코드 Promise를 마치 동기적으로 처리하는 방법을 알아봄

'프로그래밍언어 > JavaScript' 카테고리의 다른 글

[Javascript] state와 props  (0) 2022.04.09
[Javascript] API & fetch  (0) 2022.04.07
[Javascript] 비동기를 동기로 Promise  (0) 2022.04.06
[Javascript] 동기 & 비동기  (0) 2022.04.06
[Javascript] 비 구조화 할당  (0) 2022.04.06

댓글