Skip to content

Instantly share code, notes, and snippets.

@zanedeg
Created June 1, 2018 00:10
Show Gist options
  • Save zanedeg/abae9ed4fc5c9622d8e67630b1d581e8 to your computer and use it in GitHub Desktop.
Save zanedeg/abae9ed4fc5c9622d8e67630b1d581e8 to your computer and use it in GitHub Desktop.
NodeJS async comparisons
'use strict';
const promisify = require('util').promisify;
const delay = (interval, cb) => {
console.log(`Waiting ${interval}s`);
setTimeout(() => cb(null, interval), interval);
}
const delayAsync = promisify(delay);
// ----------------------------------------------------
// let result1, result2, result3;
// delay(1000, (err, result) => {
// result1 = result;
// console.log(`Got result: ${result1}`)
// });
// delay(2000, (err, result) => {
// result2 = result;
// console.log(`Got result: ${result2}`)
// });
// delay(3000, (err, result) => {
// result3 = result;
// console.log(`Got result: ${result3}`)
// });
// console.log('Sum:', result1 + result2 + result3)
// ----------------------------------------------------
// let result1, result2, result3;
// delay(1000, (err, result) => {
// result1 = result;
// console.log(`Got result: ${result1}`)
// delay(2000, (err, result) => {
// result2 = result;
// console.log(`Got result: ${result2}`)
// delay(3000, (err, result) => {
// result3 = result;
// console.log(`Got result: ${result3}`)
// console.log('Sum:', result1 + result2 + result3)
// });
// });
// });
// ----------------------------------------------------
// let result1, result2, result3;
// delayAsync(1000)
// .then(result => {
// result1 = result;
// console.log(`Got result: ${result1}`)
// return delayAsync(2000)
// })
// .then(result => {
// result2 = result;
// console.log(`Got result: ${result2}`)
// return delayAsync(3000)
// })
// .then(result => {
// result3 = result;
// console.log(`Got result: ${result3}`)
// console.log('Sum:', result1 + result2 + result3)
// });
// ----------------------------------------------------
// const parallelDelays = [
// delayAsync(1000),
// delayAsync(2000),
// delayAsync(3000)
// ];
// Promise.all(parallelDelays)
// .then(results => {
// console.log(`Got results: ${results}`);
// console.log('Sum:', results[0] + results[1] + results[2])
// });
// ----------------------------------------------------
// (async function() {
// let result1 = await delayAsync(1000);
// console.log(`Got result: ${result1}`)
// let result2 = await delayAsync(2000);
// console.log(`Got result: ${result2}`)
// let result3 = await delayAsync(3000);
// console.log(`Got result: ${result3}`)
// console.log('Sum:', result1 + result2 + result3)
// }());
// ----------------------------------------------------
// (async function() {
// const parallelDelays = [
// delayAsync(1000),
// delayAsync(2000),
// delayAsync(3000)
// ];
// let results = await Promise.all(parallelDelays)
// console.log(`Got results: ${results}`)
// console.log('Sum:', results[0] + results[1] + results[2])
// }());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment