Skip to content

Instantly share code, notes, and snippets.

@yxnino
Created April 7, 2017 10:43
Show Gist options
  • Save yxnino/2856a4971639f81248b56ab691eeaa2c to your computer and use it in GitHub Desktop.
Save yxnino/2856a4971639f81248b56ab691eeaa2c to your computer and use it in GitHub Desktop.
function promiseSerial(tasks) {
finalTaskPromise = tasks.reduce(function (prevTaskPromise, task) {
return prevTaskPromise.then(task)
}, Promise.resolve())
return finalTaskPromise
}
const tasks = [
() => new Promise((resolve) => setTimeout(() => {console.log(1); resolve(1)},1000)),
() => new Promise((resolve) => setTimeout(() => {console.log(2); resolve(2)},2000)),
() => new Promise((resolve) => setTimeout(() => {console.log(3); resolve(3)},3000)),
]
promiseSerial(tasks)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment