-
Notifications
You must be signed in to change notification settings - Fork 0
/
3-12(Async, Await).html
52 lines (45 loc) · 1.57 KB
/
3-12(Async, Await).html
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<html>
<head>
<title>Async, Await</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/axios.min.js"></script> <!-- 프로토콜 사용 -->
<script>
var url = "https://78aeb894-7efa-4ce7-a6fe-5ef1b0f62dab.mock.pstmn.io/productList";
// Promise 사용
// function getData() {
// return new Promise(function(resolve, reject) { // resolve : 정상적으로 실행, reject : 취소
// axios.get(url).then(function (response) {
// console.log(response.data);
// resolve(response.data);
// });
// });
// }
// var total = 0;
// getData().then(function(data) {
// for(var item of data.products) {
// total += item.price;
// }
// console.log(total);
// });
async function getData2() {
return (await axios.get(url)).data; // axios 라이브러리를 통해 url 접속
}
// var data = await getData2(); // 에러 발생 : await 키워드는 함수 async 함수 내에서만 사용 가능
// var total = 0;
// for(var item of data) {
// total += item.price;
// }
// console.log(total);
async function calculateSum() {
var data = await getData2();
var total = 0;
for(var item of data) {
total += item.price;
}
console.log(total);
}
calculateSum();
</script>
</body>
</html>