Last active
September 5, 2017 07:26
-
-
Save krishna2nd/c97d0b737d15e44e6246c9eb0808f1eb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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