Я все еще привыкаю к Обещаниям ES6, поэтому я не уверен, что нашел лучший способ сделать что-либо.
У меня есть тривиальный пример, который использует setInterval
, чтобы сделать что-то доэто закончено.Я хотел бы превратить его в Обещание, чтобы я мог связать его в цепочку.
function action(text,max) {
return new Promise(function(resolve,reject) {
var countdown=max;
var intervalID=window.setInterval(doit,200);
function doit() {
console.log(text+': '+countdown--);
if(countdown<0) {
intervalID=window.clearInterval(intervalID);
resolve();
}
}
});
}
Promise.resolve()
.then(()=>action('Hello',10))
.then(()=>action('Goodbye',20));
Он выполняет свою работу, но вопрос заключается в следующем: есть ли лучший способ превратить setInterval
в Обещание?