带有区间变量的 rxjs 无限循环

Mur*_*sli 1 javascript rxjs rxjs5

我想使用 rxjs Observable 使用区间变量进行无限循环,因此我尝试在 rxjs 中重写此函数

takeAWalk(player){
    setTimeout(() => {

      console.log("Player is walking...");

      takeAWalk(player);
    }, getRandomDelayBetween(1000, 2500));
}
Run Code Online (Sandbox Code Playgroud)

我试过

Observable
  .timer(0, getRandomDelayBetween(1000, 2500))
  .take(10)
  .timeInterval()
  .subscribe(res=>{
    console.log("player is walking ...");
  });
Run Code Online (Sandbox Code Playgroud)

但是这个问题是有限到 10 并且间隔是常数(getRandomDelayBetween只调用一次)。

我应该使用哪些运算符来产生相同的函数takeAWalk功能?

ols*_*lsn 6

有很多方法可以在 rxjs 中编写它,您可以尝试这样的方法:

Rx.Observable.of(null)
  .concatMap(() => Rx.Observable.timer(Math.random() * 1500))
  .do(() => console.log("player is walking ..."))
  .repeat()  // optionally .repeat(10)
  .subscribe();
Run Code Online (Sandbox Code Playgroud)

在这里查看示例:http : //jsbin.com/levakipunu/edit?js,console