Skip to content

Instantly share code, notes, and snippets.

@zburgermeiszter
Forked from istarkov/serialize.js
Created December 22, 2017 14:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zburgermeiszter/0c8aa55ef6cecb17ec5e33c592f59290 to your computer and use it in GitHub Desktop.
Save zburgermeiszter/0c8aa55ef6cecb17ec5e33c592f59290 to your computer and use it in GitHub Desktop.
Serialize promise calls (run promises sequentially)
// promise
const sleep = (timeout, v) => new Promise(r => setTimeout(() => {console.log(v); r(v)}, timeout));
// series to call
const series = [() => sleep(1000, 1), () => sleep(1000, 2), () => sleep(1000, 3)];
// serialize
const r = series
.reduce(
(m, p) => m.then(v => Promise.all([...v, p()])),
Promise.resolve([])
);
// get result
r.then((r) => console.log('done', r))
// out [1, 2, 3]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment