function runPromises(promiseCreators, initData) {
return promiseCreators
.reduce((promise, next) => promise
.then((data) => next(data))
, Promise.resolve(initData));
}
var promise1 = function (data = 0) {
return new Promise(resolve => {
resolve(data + 1);
});
}
var promise2 = function (data) {
return new Promise(resolve => {
resolve(data *2);
});
}
runPromises([promise1, promise2], 1).then(res=>console.log(res));
runPromises([promise2, promise1], 1).then(res=>console.log(res));