Last active
January 26, 2023 18:46
-
-
Save shurane/6421e35fc295fdd1da7429013d94280f to your computer and use it in GitHub Desktop.
This file contains 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
"use strict"; | |
// https://stackoverflow.com/questions/45285129/any-difference-between-await-promise-all-and-multiple-await | |
// also https://jsfiddle.net/znup6vLj/ | |
//console.clear(); | |
function delay(ms: number) { | |
return new Promise(resolve => { | |
setTimeout(resolve, ms); | |
}); | |
} | |
interface Empty {} | |
interface Person { name: string, age: number } | |
// IIFE https://developer.mozilla.org/en-US/docs/Glossary/IIFE | |
(async () => { | |
const time1 = new Date().getTime(); | |
const arr: Promise<number>[] = [ | |
delay(60).then(() => 5), | |
delay(60).then(() => 10), | |
delay(100).then(() => 15), | |
Promise.resolve(20), | |
] | |
const funcs: (Promise<number>|number|void)[] = [ | |
async () => { | |
console.log(60); | |
return await Promise.resolve(60); | |
}, | |
() => { console.log(65); return 65; }, | |
() => { console.log(70); return Promise.resolve(70); }, | |
// https://stackoverflow.com/questions/38708550/difference-between-return-await-promise-and-return-promise | |
// would not be caught if there was an error here | |
// use https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled to contain errors | |
//() => { console.log(75); return Promise.reject(75); }, | |
() => { console.log(80); Promise.resolve(80); }, | |
// https://stackoverflow.com/a/24250926/198348 | |
() => { return Promise.resolve(<Empty>{}); }, | |
() => { return Promise.resolve(<Person>{name: "E", age: 1}); }, | |
].map(f => f()); | |
const data = await Promise.all([...arr, ...funcs]); | |
const time2 = new Date().getTime(); | |
console.log("done", time2 - time1); | |
console.log(data); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment