async & await - 직관적인 비동기 처리 코드 자성
2022. 6. 27. 17:01ㆍReact/한입 크기로 잘라 먹는 리액트(React.js)
async와 await는 Promise를 더 쉽게 이용할 수 있도록 도와준다.
1. Async
Promise를 반환하면, 결과 값은 Promise 값을 반환한다.
그리하여 helloAsync()함수는 Promise를 반환하는 비동기 함수가 된다.
>> 그래서 console.log가 아닌 then을 사용해서 출력도 가능함을 알 수 있다.
>> Async는 return 값을 Promise로 만든다.
2. Await
// 비동기 함수는 Promise를 return한다.
// 이 함수는 실패가 없다.
function delay(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
// 이렇게 해도 되지만
// function delay(ms) {
// return new Promise((resolve) => {
// setTimeout(() => {
// resolve();
// }, ms);
// });
// }
// async는 Promise를 반환한다.
// async function helloAsync() {
// return delay(3000).then(() => {
// return "hello Async";
// });
// }
// 위를 이렇게 짧게 await로 나타낼 수 있다.
// await줄들은 모두 동기적으로 실행 됨
// await은 async함수에서만 사용 가능
async function helloAsync() {
await delay(3000);
return "hello Async";
}
helloAsync().then((res) => {
console.log(res);
});
// 비동기 함수는 Promise를 return한다.
// 이 함수는 실패가 없다.
function delay(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
// 이렇게 해도 되지만
// function delay(ms) {
// return new Promise((resolve) => {
// setTimeout(() => {
// resolve();
// }, ms);
// });
// }
// async는 Promise를 반환한다.
// async function helloAsync() {
// return delay(3000).then(() => {
// return "hello Async";
// });
// }
// 위를 이렇게 짧게 await로 나타낼 수 있다.
// await줄들은 모두 동기적으로 실행 됨
// await은 async함수에서만 사용 가능
async function helloAsync() {
await delay(3000);
return "hello Async";
}
// 이렇게 간단하게 나타낼 수 있다.
async function main() {
const res = await helloAsync();
console.log(res);
}
main();
비동기 함수는 Promise를 return한다.
await줄들은 모두 동기적으로 실행 됨
await은 async함수에서만 사용 가능
'React > 한입 크기로 잘라 먹는 리액트(React.js)' 카테고리의 다른 글
4-1. Node.js란 (자바스크립트 런타임) (0) | 2022.06.28 |
---|---|
3-10. API & fetch (Promise/async&await/fetch/API) (0) | 2022.06.28 |
3-8. Promise(콜백 지옥에서 우리를 구원하다) (0) | 2022.06.21 |
3-7. 동기 & 비동기 (순서대로 실행하는 것과 그렇지 않은 것 들) (0) | 2022.06.21 |
3-6. spread 연산자(배열과 객체를 한줄로 펼치는 방법) (0) | 2022.06.21 |