Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. // helpers
  2. function sleep(ms: number) {
  3. return new Promise<void>(resolve => setTimeout(resolve, ms));
  4. }
  5. async function returnAfter<T>(time: number, value: T) {
  6. await sleep(time);
  7. return value;
  8. }
  9.  
  10. // main subject of gist
  11. async function sleepSort(array: number[]) {
  12. const sortedArray: number[] = [];
  13. await Promise.all(array.map(async number => {
  14. await returnAfter(number * array.length, number);
  15. sortedArray.push(number);
  16. }));
  17. return sortedArray;
  18. }
  19.  
  20. // run the async main function
  21. (async () => {
  22. console.log(await sleepSort([ 1, 12, 5, 7, 3, 17, 6, 15, 4, 2, 19, 9 ]));
  23. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement