我正在尝试es6承诺并将它们链接起来,并且不明白为什么我的例子不起作用。
我想多次链接printInterval()和setInterval()并希望_interval减少如下:
但我得到以下内容:
function printInterval() {
return new Promise(function(resolve, reject){
setTimeout(function () {
console.log('waited ' + _interval + 'ms to display this message')
resolve(_interval);
}, _interval)
})
}
function setInterval(interval){
return new Promise(function(resolve, reject) {
setTimeout(function () {
console.log('setting interval to ', interval)
_interval = interval;
resolve(_interval);
}, 0);
})
}
var _interval = 3000;
printInterval()
.then(function(){setInterval(2000)})
.then(function(){printInterval()})
.then(function(){setInterval(1000)})
.then(function(){printInterval()})
.then(function(){setInterval(500)})
.then(function(){printInterval()});
谢谢你!
答案 0 :(得分:2)
你应该return
这些功能不只是打电话给他们:
printInterval()
.then(function(){return setInterval(2000)})
.then(function(){return printInterval()})
.then(function(){return setInterval(1000)})
.then(function(){return printInterval()})
.then(function(){return setInterval(500)})
.then(function(){return printInterval()});