티스토리 뷰
반응형
- 이게 best Practice인지는 모르겠음.
const getAjax = function(url) {
return new Promise((resolve, reject) => { // 1.
$.ajax({
url: url,
type: "GET",
dataType: "json",
data: {
ascending: false,
max: 20,
},
success: (res) => {
resolve(res); // 2.
},
error: (e) => {
reject(e); // 3.
}
});
});
}
$(document).on('click', "#btnId", async () => { // 4.
try {
const { token, items } = await getAjax(url); // 5.
// token = API로 반환된 res.token
// items = API로 반환된 res.items
} catch(e) { // 6.
console.log(e);
}
});
- getAjax 함수가 new Promise를 반환할 수 있도록 한다.
- ajax 이행 성공시 resolve(res)에 의해 res가 반환된다.
- ajax 이행 실패시 reject(e)에 의해 e가 반환된다. 처리는 6.과 같이 await 구문을 try - catch 블록에 포함시켜 수행할 수 있다.
- 화살표 함수에는 async 키워드만 붙여주면 된다.
- 비동기 처리를 하는 함수 앞에 await 키워드를 붙여주며, 반환 결과는 구조 분해 할당으로 변수에 초기화할 수 있다.
- reject(e)를 처리하기 위한 try-catch 블록
'Dev. > javascript' 카테고리의 다른 글
[JS] symbol이란? (0) | 2021.04.20 |
---|---|
[JS] primitive value (0) | 2021.04.20 |
[JS] 가변인자 함수 (0) | 2021.04.05 |
[JS] WebStorm에 Airbnb style 적용 (0) | 2021.04.05 |
[JS] 구조 분해 할당을 이용한 변수 초기화 (0) | 2021.04.05 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Linux
- Gradle
- IntelliJ
- Node.js
- terraform
- AWS IoT
- etc
- JPA
- postgresql
- RancherDesktop
- eureka
- Java
- Puppeteer
- spring boot
- 코딩테스트
- Vault
- mysql
- shell
- Docker
- Git
- hashicorp
- Spring Cloud Config
- jQuery
- javascript
- AWS
- kotlin
- pgloader
- JEST
- react
- Database
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함