├── index.html └── src └── js └── index.js /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | HW17-js-promises 9 | 10 | 11 |
12 | 13 |
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 | --------------------------------------------------------------------------------