250x250
Notice
Recent Posts
Recent Comments
- Today
- Total
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- await
- https
- TypeScript
- double quote
- til
- clipBehavior
- Find
- mongodb
- jsonwebtoken
- atlas
- MYSQL
- moment
- findByIdAndDelete
- mongoose
- Node.js
- sequelize
- nginx
- RDS
- JavaScript
- Express
- flutter
- css
- TailwindCSS
- async
- AWS
- certbot
- Nodejs
- single quote
- wil
- EC2
Link
Archives
기억 휘발 방지소
[JavaScript] async/await 본문
728x90
반응형
async 함수
- async와 await는 비동기 코드를 쓰고 Promise를 더 읽기 쉽게 만들어준다.
- async는 function 앞에 위치한다.
아래와 같이 사용한다.
async function 함수() {
// logic
}
화살표 함수를 사용하면 아래와 같이 사용할 수도 있다.
const 변수 = async () => {
// logic
}
function 앞에 async를 붙이면 해당 함수는 항상 Promise를 반환한다.
아래 코드를 실행하면 'Promise { 'Hello' }'를 반환
async function hello() {
return "Hello";
}
console.log(hello());
반환된 값을 사용하기 위해서는 .then()을 사용해야한다.
async function hello() {
return "Hello";
}
hello().then((hello) => console.log(hello));
// 혹은
hello().then(console.log);
// 결과: Hello
await
- await는 async 함수 안에서만 동작한다. (async 함수가 아닌데 await를 사용하면 문법에러 발생)
- '변수 = await 프로미스' 인 경우에는 프로미스가 resolve된 값이 변수에 저장된다.
- '변수 = await 값' 인 경우 그 값이 변수에 저장된다.
async function hello() {
const greeting = new Promise((resolve) => {
resolve("Hello");
});
const result = await greeting;
return result;
}
hello().then(console.log);
// 결과: Hello
예외처리
async, await에서 에러처리는 try...catch를 통해 할 수 있다.
async function func() {
try {
const result = await 프로미스;
return result;
} catch (error) {
console.error(error);
}
}728x90
반응형
'Web > JavaScript' 카테고리의 다른 글
| [JavaScript] find() (0) | 2021.09.24 |
|---|---|
| [JavaScript] reduce() (0) | 2021.09.11 |
| [JavaScript] Promise (0) | 2021.09.04 |
| [JavaScript] parseInt() vs Number() (0) | 2021.09.03 |
| [JavaScript] 이벤트 루프 (0) | 2021.09.02 |