我想使用rxjs Observable使用区间变量进行无限循环
所以我试图在rxjs中重写此函数
takeAWalk(player){
setTimeout(() => {
console.log("Player is walking...");
takeAWalk(player);
}, getRandomDelayBetween(1000, 2500));
}
我试过了
Observable
.timer(0, getRandomDelayBetween(1000, 2500))
.take(10)
.timeInterval()
.subscribe(res=>{
console.log("player is walking ...");
});
但问题是此值限制为10,并且间隔是恒定的(
getRandomDelayBetween
仅被调用一次)。我应该使用哪些运算符来产生与
takeAWalk
函数相同的功能? 最佳答案
有很多方法可以在rxjs中编写此代码,您可以尝试执行以下操作:
Rx.Observable.of(null)
.concatMap(() => Rx.Observable.timer(Math.random() * 1500))
.do(() => console.log("player is walking ..."))
.repeat() // optionally .repeat(10)
.subscribe();
在此处查看示例:http://jsbin.com/levakipunu/edit?js,console
关于javascript - 带间隔变量的rxjs无限循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41197720/