Эффективное использование Promise с setInterval - PullRequest
0 голосов
/ 17 сентября 2018

Я все еще привыкаю к ​​Обещаниям 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 в Обещание?

...