diff --git a/catfactsasync.mjs b/catfactsasync.mjs new file mode 100644 index 0000000..e70875b --- /dev/null +++ b/catfactsasync.mjs @@ -0,0 +1,10 @@ +import fetch from 'node-fetch'; + +const catFact = async () => { + const result = await fetch('https://cat-fact.herokuapp.com/facts/random'); + const json = await result.json(); + return json.text; +}; + +const fact = await catFact(); +console.log(fact); diff --git a/catfactspromise.mjs b/catfactspromise.mjs new file mode 100644 index 0000000..b6c6db0 --- /dev/null +++ b/catfactspromise.mjs @@ -0,0 +1,10 @@ +// https://cat-fact.herokuapp.com/facts/random + +import fetch from 'node-fetch'; + +fetch('https://cat-fact.herokuapp.com/facts/random') + .then(result => { + return result.json(); + }).then(json => { + console.log(json.text); + }); \ No newline at end of file diff --git a/demo5-async-await-example.js b/demo5-async-await-example.js index 930d793..6f64c1f 100644 --- a/demo5-async-await-example.js +++ b/demo5-async-await-example.js @@ -1,17 +1,17 @@ function resolveAfter2Seconds() { - return new Promise(resolve => { - setTimeout(() => { - resolve('resolved'); - }, 2000); - }); - } + return new Promise(resolve => { + setTimeout(() => { + resolve('resolved'); + }, 2000); + }); +} - async function asyncCall() { - console.log('calling'); - var result = await resolveAfter2Seconds(); - console.log(result); - // expected output: 'resolved' - } +async function asyncCall() { + console.log('calling'); + const result = await resolveAfter2Seconds(); + console.log(result); + // expected output: 'resolved' +} - asyncCall(); +asyncCall(); \ No newline at end of file diff --git a/demo5-async-await-example.mjs b/demo5-async-await-example.mjs new file mode 100644 index 0000000..6880cef --- /dev/null +++ b/demo5-async-await-example.mjs @@ -0,0 +1,11 @@ +function resolveAfter2Seconds() { + return new Promise(resolve => { + setTimeout(() => { + resolve('resolved'); + }, 2000); + }); + } + +console.log('calling'); +var result = await resolveAfter2Seconds(); +console.log(result); diff --git a/demo8-async-fetch.mjs b/demo8-async-fetch.mjs new file mode 100644 index 0000000..b1014f8 --- /dev/null +++ b/demo8-async-fetch.mjs @@ -0,0 +1,5 @@ +import fetch from 'node-fetch'; + +const result = await fetch('https://api.meetup.com/2/events?&sign=true&group_id=10250862&page=20'); +const json = await result.json(); +console.log(json.meta.title); diff --git a/demo8-async-gettitle.mjs b/demo8-async-gettitle.mjs new file mode 100644 index 0000000..531d22a --- /dev/null +++ b/demo8-async-gettitle.mjs @@ -0,0 +1,15 @@ +import fetch from 'node-fetch'; + +async function getTitle() { + try { + const result = await fetch('https://api.meetup.com/2/events?&sign=true&group_id=10250862&page=20'); + const json = await result.json(); + return json.meta.title; + } catch (err) { + throw err; + } +} + +getTitle() + .then(title => console.log(title)) + .catch(err => console.error(err)); diff --git a/demo8-promise-fetch.mjs b/demo8-promise-fetch.mjs new file mode 100644 index 0000000..389f4f2 --- /dev/null +++ b/demo8-promise-fetch.mjs @@ -0,0 +1,10 @@ +import fetch from 'node-fetch'; + +fetch('https://api.meetup.com/2/events?&sign=true&group_id=10250862&page=20') + .then(result => { + return result.json(); + }).then(json => { + console.log(json.meta.title); + }).catch(err => { + console.error(err); + }); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c7955e6..3098381 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,51 +1,87 @@ { "name": "async-examples", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "4.17.11" + "packages": { + "": { + "name": "async-examples", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "async": "^3.2.0", + "axios": "^0.21.1", + "moment-timezone": "^0.5.21", + "node-fetch": "^2.6.1" } }, - "axios": { - "version": "0.18.0", - "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz", - "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", - "requires": { - "follow-redirects": "1.5.9", - "is-buffer": "1.1.6" + "node_modules/async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + }, + "node_modules/axios": { + "version": "0.21.1", + "resolved": "http://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "dependencies": { + "follow-redirects": "^1.10.0" } }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" + "node_modules/follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "engines": { + "node": ">=4.0" } }, - "follow-redirects": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", - "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", - "requires": { - "debug": "3.1.0" + "node_modules/moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", + "engines": { + "node": "*" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "node_modules/moment-timezone": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", + "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + } + }, + "dependencies": { + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + "axios": { + "version": "0.21.1", + "resolved": "http://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" }, "moment": { "version": "2.22.2", @@ -57,18 +93,13 @@ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", "requires": { - "moment": "2.22.2" + "moment": ">= 2.9.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "node-fetch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.2.0.tgz", - "integrity": "sha512-OayFWziIxiHY8bCUyLX6sTpDH8Jsbp4FfYd1j1f7vZyfgkcOnAyM4oQR16f8a0s7Gl/viMGRey8eScYk4V4EZA==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" } } } diff --git a/package.json b/package.json index b9a1a0c..b84fa7c 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,9 @@ }, "homepage": "https://github.com/Jaxnode-UG/async#readme", "dependencies": { - "async": "^2.6.1", - "axios": "^0.18.0", + "async": "^3.2.0", + "axios": "^0.21.1", "moment-timezone": "^0.5.21", - "node-fetch": "^2.2.0" + "node-fetch": "^2.6.1" } }