Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function sequence(list, results, resolve, reject) {
- if (!results) {
- return new Promise((resolve, reject) => sequence(list, [], resolve, reject));//first time
- } else {
- if (!results){
- results = [];//one time
- }
- if (list.length == 0) {
- return resolve(results);//last time
- } else {
- list[0]().then(result => { //each time
- results.push(result);
- list.splice(0, 1);
- sequence(list, results, resolve, reject);
- }).catch(err => {
- reject(err);
- });
- }
- }
- }
- //Testing
- /*
- sequence([
- () => new Promise((resolve, reject) => {
- setTimeout(() => {
- console.log('Foo');
- resolve('Foo rocks!');
- },2000);
- }),
- () => new Promise((resolve, reject) => {
- setTimeout(() => {
- console.log('Bar');
- resolve('Bar completed');
- },3000);
- })
- ]).then(results => {
- console.log('YES!', results)
- })
- */
Add Comment
Please, Sign In to add comment