Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save krishna2nd/c97d0b737d15e44e6246c9eb0808f1eb to your computer and use it in GitHub Desktop.
Save krishna2nd/c97d0b737d15e44e6246c9eb0808f1eb to your computer and use it in GitHub Desktop.
const out = {
userSucc: {
succ: true,
t: 200,
value: {
name: "krishna",
age: 20
}
},
userError: {
succ: false,
t: 2000,
value: {
statusCode: 300,
message: "Unexpected error"
}
},
dataSucc: {
succ: true,
t: 100,
value: {
session: '@#$%^&SADFGNBVCX',
expiry: '12 Dec 2017'
}
}
};
let promisify = (out) =>
new Promise(
(resolve, reject)=> {
setTimeout(function () {
if (out.succ) return resolve(out.value)
else return reject(out.value);
}, out.t)
});
let findUserSucc = async () => { return promisify(out.userSucc);}
let findUserErr = async () => { return promisify(out.userError);}
let fetchDataSucc = async () => { return promisify(out.dataSucc);}
AwaitSerial = async () => {
let u, e, d;
try {
u = await findUserSucc();
e = await findUserErr();
d = await fetchDataSucc();
} catch(ex) {
e = ex;
}
console.log('AwaitSerial', u, e, d);
}
AllAwaitSerial = async () => {
let u, e, d;
try {
[u, e, d] = [
await findUserSucc(),
await findUserErr(),
await fetchDataSucc()
]
} catch(ex) {
e = ex;
}
console.log('AllAwaitSerial', u, d, e);
}
AllAwait = async () => {
let u, e, d;
try {
[u, e, d] = await Promise.all([findUserSucc(), findUserErr(), fetchDataSucc()]);
} catch(ex) {
e = ex;
}
console.log('AllAwait', u, d, e);
}
AwaitSerial();
AllAwaitSerial();
AllAwait();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment