How can I dynamically create a series of promises and have them execute in sequence?
pseudocode
for x=0 to maxValue
promiseArray.push(createNewPromise(x))
executeAllPromisesSequentially(promiseArray)
where
executeAllPromisesSequentially is functionally equivalent to
promise1()
.then(promise2)
.then(promise3)
etc
...
There are some patterns displayed on my gist
let tasks = [ /* ... */ ]
let promise = tasks.reduce((prev, task) => {
return prev.then(() => {
return task();
});
}, Promise.resolve());
promise.then(() => {
//All tasks completed
});
let tasks = [ /* ... */ ]
let promise = Promise.resolve();
tasks.forEach(task => {
promise = promise.then(() => {
return task();
});
});
promise.then(() => {
//All tasks completed
});
function spiderLinks(currentUrl, body, nesting) {
let promise = Promise.resolve();
if(nesting === 0) {
return promise;
}
const links = utilities.getPageLinks(currentUrl, body);
links.forEach(link => {
promise = promise.then(() => spider(link, nesting - 1));
});
return promise;
}