├── 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 | --------------------------------------------------------------------------------