単純な短い投票に 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()
ここではうまくいかないことに注意してください。実際には最も重要な最後の値は返されません。
ありがとう!