8

単純な短い投票に RxJS を使用しようとしています。delayサーバー上のロケーションに対して 1 秒ごとに 1 回リクエストを行う必要がpathあり、2 つの条件のいずれかに到達すると終了します。コールバックisComplete(data)が true を返すか、サーバーをmaxTries. 基本的なコードは次のとおりです。

newShortPoll(path, maxTries, delay, isComplete) {
    return Observable.interval(delay)
    .take(maxTries)
    .flatMap((tryNumber) => http.get(path))
    .doWhile((data) => !isComplete(data));
  }

maxTriesただし、RxJS 5.0 には doWhile が存在しないため、take() 呼び出しのおかげで、サーバーを試行することしかできない条件が機能しますが、isComplete条件は機能しません。isComplete が true を返すまでオブザーバブルが next() の値になるようにするにはどうすればよいですか。

takeWhile()ここではうまくいかないことに注意してください。実際には最も重要な最後の値は返されません。

ありがとう!

4

3 に答える 3