Run promises in series
Iterate over an array in series. Execution will not move onto the next element in the array until after the current element has resolved.
const series = require("promise-series2");
promise = series(
callback,
parallelCount,
array
);
promise.then(results => {
})
Examples
const series = require("promise-series2");
const vals = [1,2,3,4];
series((val,ix) => {
return Promise.resolve(val);
}, vals)
.then(results => {
results[0] == vals[0];
results[1] == vals[1];
results[2] == vals[2];
results[3] == vals[3];
});
Example using setTimeout
const series = require("promise-series2");
const vals = [1,2,3,4];
series((val,ix) => {
return new Promise((resolve,reject) => {
setTimeout(()=> resolve(val),1000);
});
}, vals)
.then(results => {
});
Example using request-promise
const series = require("promise-series2");
const rp = require('request-promise');
const vals = [
"http://www.google.com",
"http://www.microsoft.com"
];
series(url => return rp(url),vals)
.then(results => {
results[0];
results[1];
});
Access to current results set
const series = require("promise-series2");
const vals = [1,2,3,4];
series((val,ix,results) => {
if (ix)
results[ix-1] == vals[ix-1];
return Promise.resolve(val);
},vals)
.then(results => {
results[0] == vals[0];
results[1] == vals[1];
results[2] == vals[2];
results[3] == vals[3];
});