├── index.html
└── src
└── js
└── index.js
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 | HW18-js-async-await
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/js/index.js:
--------------------------------------------------------------------------------
1 | function delay(data, ms) {
2 | return new Promise((resolve, reject) => {
3 | setTimeout(() => {
4 | resolve(data)
5 | }, ms)
6 | })
7 | }
8 |
9 | delay({name: "user"}, 1000).then((data) => console.log("Hello!", data))
10 |
11 | async function getUserInfo() {
12 | return await delay({name: 'Vic', age: 21, id: 1},1000);
13 | }
14 |
15 | async function getUserAvatar(userInfo) {
16 | userInfo.avatar = 'https://previews.123rf.com/images/stockgiu/stockgiu1708/stockgiu170802061/83728179-avatar-sketch-of-a-funny-man-s-haed-with-sunglasses-and-hairstyle-design.jpg'
17 | return await delay(userInfo,1000);
18 | }
19 |
20 | async function getUserAdditionalInfo(userInfo) {
21 | userInfo.interests = ['sport', 'books'];
22 | return await delay(userInfo,1000);
23 | }
24 |
25 |
26 | async function getResult() {
27 | await getUserInfo()
28 | .then(res => getUserAvatar(res))
29 | .then(res => getUserAdditionalInfo(res))
30 | .then(res => console.log(res))
31 | }
32 |
33 | getResult()
34 |
35 | async function getUser() {
36 | return { name: 'Vic', age: 21, id: 1 };
37 | }
38 | async function getInfo() {
39 | let user = await getUser();
40 | throw new Error('error');
41 | }
42 | try {
43 | getInfo()
44 | } catch (e) {
45 | console.error(e)
46 | }
47 |
48 |
49 |
--------------------------------------------------------------------------------