我仍然习惯于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?