Skip to content

Commit 599973d

Browse files
committed
Async/Await Example 🗽🔗
1 parent 08e2222 commit 599973d

File tree

7 files changed

+278
-0
lines changed

7 files changed

+278
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Password-Generator
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"singleQuote": true,
3+
"printWidth": 100
4+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
https://images.dog.ceo/breeds/labrador/n02099712_2332.jpg
2+
https://images.dog.ceo/breeds/labrador/n02099712_1200.jpg
3+
https://images.dog.ceo/breeds/labrador/n02099712_1414.jpg
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
labrador
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
const fs = require('fs');
2+
const superagent = require('superagent');
3+
4+
const readFilePromise = file => {
5+
return new Promise((resolve, reject) => {
6+
fs.readFile(file, (err, data) => {
7+
if (err) reject('I could not find that file 😥');
8+
resolve(data);
9+
});
10+
});
11+
};
12+
13+
const writeFilePromise = (file, data) => {
14+
return new Promise((resolve, reject) => {
15+
fs.writeFile(file, data, err => {
16+
if (err) reject('Could not write file 😥');
17+
resolve('Success! ✌');
18+
});
19+
});
20+
};
21+
22+
const getDogPic = async () => {
23+
try {
24+
const data = await readFilePromise(`${__dirname}/dog.txt`);
25+
console.log(`Breed: ${data}`);
26+
27+
const res1Pro = superagent.get(`https://dog.ceo/api/breed/${data}/images/random`);
28+
const res2Pro = superagent.get(`https://dog.ceo/api/breed/${data}/images/random`);
29+
const res3Pro = superagent.get(`https://dog.ceo/api/breed/${data}/images/random`);
30+
31+
const all = await Promise.all([res1Pro, res2Pro, res3Pro]);
32+
const imgs = all.map(el => el.body.message);
33+
34+
await writeFilePromise('dog-img.txt', imgs.join('\n'));
35+
console.log('Random dog image saved to file!');
36+
} catch (err) {
37+
console.log(err);
38+
throw err;
39+
}
40+
41+
return '2: READY 🐶';
42+
};
43+
44+
(async () => {
45+
try {
46+
console.log('1: Will get dog pics!');
47+
const x = await getDogPic();
48+
console.log(x);
49+
console.log('3: Done getting dog pics!');
50+
} catch (err) {
51+
console.log('ERROR 💥');
52+
}
53+
})();
54+
/* console.log('1: Will get dog pics!');
55+
getDogPic()
56+
.then(x => {
57+
console.log(x);
58+
console.log('3: Done getting dog pics!');
59+
})
60+
.catch(err => {
61+
console.log('ERROR 💥');
62+
}); */
63+
64+
/* readFilePromise(`${__dirname}/dog.txt`)
65+
.then(data => {
66+
console.log(`Breed: ${data}`);
67+
return superagent.get(`https://dog.ceo/api/breed/${data}/images/random`);
68+
})
69+
.then(res => {
70+
console.log(res.body.message);
71+
return writeFilePromise('dog-img.txt', res.body.message);
72+
})
73+
.then(() => {
74+
console.log('Random dog image saved to file!');
75+
})
76+
.catch(err => console.log(err)); */
77+
78+
/* fs.readFile(`${__dirname}/dog.txt`, (err, data) => {
79+
80+
if (err) return console.log(err.message);
81+
82+
console.log(`Breed: ${data}`);
83+
84+
superagent.get(`https://dog.ceo/api/breed/${data}/images/random`).then(res => {
85+
86+
console.log(res.body.message);
87+
88+
fs.writeFile('dog-img.txt', res.body.message, err => {
89+
if (err) return console.log(err.message);
90+
console.log('Random dog image saved to file!');
91+
});
92+
}).catch(err => console.log(err.message));
93+
});
94+
*/

Asynchronous-JavaScript/Asynchronous-Example/package-lock.json

Lines changed: 153 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"name": "asynchronous-js",
3+
"version": "1.0.0",
4+
"description": "All about asynchronous javascript",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"repository": {
10+
"type": "git",
11+
"url": "git+https://github.com/Lakshmangope/node.js.git"
12+
},
13+
"author": "Lakshman Gope",
14+
"license": "ISC",
15+
"bugs": {
16+
"url": "https://github.com/Lakshmangope/node.js/issues"
17+
},
18+
"homepage": "https://github.com/Lakshmangope/node.js#readme",
19+
"dependencies": {
20+
"superagent": "^5.1.0"
21+
}
22+
}

0 commit comments

Comments
 (0)