├── index.html
└── src
└── js
└── index.js
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 | HW17-js-promises
9 |
10 |
11 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/js/index.js:
--------------------------------------------------------------------------------
1 | function delay(ms) {
2 | return new Promise((resolve, reject) => {
3 | setTimeout(() => {
4 | resolve()
5 | }, ms)
6 | })
7 | }
8 |
9 | delay(1000).then(() => console.log("Hello!"))
10 |
11 | function getUserInfo() {
12 | return new Promise(function (resolve, reject) {
13 | setTimeout(() => resolve({name: 'Vic', age: 21, id: 1}), 1000);
14 | });
15 | }
16 |
17 | function getUserAvatar(userInfo) {
18 | return new Promise(function (resolve, reject) {
19 | 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'
20 | setTimeout(() => resolve(userInfo), 1000);
21 | });
22 | }
23 |
24 | function getUserAdditionalInfo(userInfo) {
25 | return new Promise(function (resolve, reject) {
26 | userInfo.interests = ['sport', 'books'];
27 | setTimeout(() => resolve(userInfo), 1000);
28 | });
29 | }
30 |
31 | getUserInfo()
32 | .then(res => getUserAvatar(res))
33 | .then(res => getUserAdditionalInfo(res))
34 | .then(res => console.log(res))
35 |
36 | new Promise(function (resolve, reject) {
37 | setTimeout(() => resolve({name: 'Vic', age: 21, id: 1}), 1000);
38 | })
39 | .then(function (userInfo) {
40 | return new Promise(function (resolve, reject) {
41 | setTimeout(() => reject(new Error('wrong data')), 1000);
42 | });
43 | }, err => console.error(err))
44 | // .catch(err => console.error(err))
45 |
46 |
--------------------------------------------------------------------------------