understanding promises
HTML
<div>
<ul id="console">Console:</ul>
</div>
JavaScript
let i = 1;
let stopAt = 10;
function promise1(val) {
print('1');
return new Promise((resolve, reject) =>
reject("1st call succeed"));
}
function promise2(val) {
print('2');
return Promise.reject("2nd call rejected");
}
function promise3(val) {
print('3');
return Promise.resolve("3rd last call succeed");
}
function promiseArray() {
const promisesToTry = [
promise1,
promise2,
promise3,
promise2,
promise2,
promise1,
promise3
];
return promisesToTry.reduce((resolution, checkStreamAgain) => {
print(resolution);
return resolution
.then(() => {
print('about to resolve');
return Promise.resolve()
})
.catch(() => {
print('about to try another promise');
return checkStreamAgain();
});
},
Promise.reject());
}
/*function loop(val) {
return promise1(val)
.then(() => promise2(), () => promise3());
}*/
promiseArray(i).then(function(result) {
debugger;
print('No more errors, I\'m the caller! promise returned: ' + result);
})
.catch(function(error) {
debugger;
print('Got an error! But I should have never be called. :( error' + error);
});
function print(message) {
console.log(message);
var ul = document.getElementById('console');
var li = document.createElement('li');
li.appendChild(document.createTextNode(message));
ul.appendChild(li);
}