일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ja async
- jpa준영속
- spring 모듈 프로젝트
- 준영속상태
- js fetch
- jpa 영속성
- JavaScript
- JS
- JPA플러시
- springboot 모듈
- js async await
- JPA
- js await
- javascript async
- 코프링
- springboot gradle 모듈 프로젝트
- 코틀린
- javascript fetch
- 코틀린 클래스
- gradle 모듈 프로젝트
- JPA플러쉬
- 스프링부트
- js api 호출
- spring gradle 모듈
- jpa 플러쉬
- JPA준영속 상태
- javascript async await
- Flutter
- javascript api 호출
- jpa 플러시
Archives
- Today
- Total
매일 한줄 코딩
14. javascript async & await ( 직관적인 비 동기 처리 ) 본문
1. async
function hello() {
return "shipjh Hi~";
}
**async** function helloAsync() {
return "Hi async";
}
console.log(hello()); //shipjh Hi~
console.log(helloAsync()); // Promise {<pending>} 반환
async 를 붙인 함수는 Promise를 반환했다.
그렇다면..
then 을 쓸수있다.
async function helloAsync() {
return "Hi async"; // resolve의 효과
}
helloAsync().then((res) => {
console.log(res); // Hi async
});
💡async 를 사용한 함수는 Promise 를 반환한다.!
2. await
3초후에 실행하려고 하는데 코드가 너무길다.
function delay(ms) {
return new Promise((success) => {
setTimeout(success, ms);
});
}
async function helloAsync() {
**return delay(3000).then(() => {
return "Hi async";
});**
}
helloAsync().then((res) => {
console.log(res);
});
간단하게 await 을 사용하면 된다.
function delay(ms) {
return new Promise((success) => {
setTimeout(success, ms);
});
}
async function helloAsync() {
await delay(3000); // delay 를 처리된후 return 한다.
return "Hi async";
}
helloAsync().then((res) => {
console.log(res);
});
await는 비동기 함수의 호출을 동기적으로 처리하게 된다.
즉 await 를 붙인 함수호출이 있을경우 뒤에있는 것을 실행하지 않고 기다렸다가, 완료되면 처리하게 된다.
await 은 async 함수 내에서만 사용이 가능하다.
'develop > javascript' 카테고리의 다른 글
15. javascript fetch 를 활용해 api 호출해보기 (0) | 2022.09.11 |
---|---|
13. javascript Promise (0) | 2022.09.11 |
12. javascript 동기 / 비동기 (0) | 2022.09.11 |
11. javascript spread 연산자 ( … ) (0) | 2022.09.11 |
10. javascript 비 구조화 할당 (0) | 2022.09.11 |
Comments