通过setInterval有效地使用Promise

时间:2018-09-16 21:36:13

标签: javascript setinterval es6-promise

我仍然习惯于ES6 Promises,所以我不确定我已经制定出最佳的处事方式。

我有一个简单的示例,它使用setInterval做某事直到完成。我想把它变成一个Promise,以便可以链接它。

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变成Promise?

0 个答案:

没有答案