-
-
Save ikbelkirasan/5770997f009a58c25b85c62c16ba983d to your computer and use it in GitHub Desktop.
execute promises in series
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
// Promise returning functions to execute | |
function doFirstThing(){ return Promise.resolve(1); } | |
function doSecondThing(res){ return Promise.resolve(res + 1); } | |
function doThirdThing(res){ return Promise.resolve(res + 2); } | |
function lastThing(res){ console.log("result:", res); } | |
var fnlist = [ doFirstThing, doSecondThing, doThirdThing, lastThing]; | |
// Execute a list of Promise return functions in series | |
function pseries(list) { | |
var p = Promise.resolve(); | |
return list.reduce(function(pacc, fn) { | |
return pacc = pacc.then(fn); | |
}, p); | |
} | |
pseries(fnlist); | |
// result: 4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment