I'm having this code :-
var i = 3
var p = Promise.resolve(i)
while (i > 0) {
(i => {
p = p.then(() => {
return new Promise(function (resolve, reject) {
console.log('start', i)
setTimeout(function () {
setTimeout(() => {
console.log('timeout')
}, 1000);
console.log('end', i)
resolve()
}, 1000)
})
})
})(i)
i--
}
p = p.then(data => console.log('execution ends'))
And I got output like this :-
start 3
end 3
start 2
timeout
end 2
start 1
timeout
end 1
execution ends
timeout
but, My expected output should be like this :-
start3
timeout
end3
start2
timeout
end2
start1
timeout
end1
In short, as my expected output 'timeout' log should be print after every 2 seconds and other logs should be print after every 1 second.