const testPromise = function (value) {
return new Promise(function (res, rej) {
console.log('testPromise: ' + value)
value >= 3 ? res() : rej()
})
}
var value = 1
const poll = function () {
testPromise(value)
.then(() => {
console.log('yay')
})
.catch(() => {
setTimeout(() => {
value += 1
poll()
}, value * 1000)
})
}
poll()
Veja como funciona aqui: https://jsbin.com/wirumixojo/edit?html,js,console