Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // helpers
- function sleep(ms: number) {
- return new Promise<void>(resolve => setTimeout(resolve, ms));
- }
- async function returnAfter<T>(time: number, value: T) {
- await sleep(time);
- return value;
- }
- // main subject of gist
- async function sleepSort(array: number[]) {
- const sortedArray: number[] = [];
- await Promise.all(array.map(async number => {
- await returnAfter(number * array.length, number);
- sortedArray.push(number);
- }));
- return sortedArray;
- }
- // run the async main function
- (async () => {
- console.log(await sleepSort([ 1, 12, 5, 7, 3, 17, 6, 15, 4, 2, 19, 9 ]));
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement