同僚と私は redux-observable like フローを Android アプリケーションに追加しましたが、最初の呼び出しが完了するまでアクションの受信を停止するエピックを作成する方法がわかりません。
当初は使用できると思っていましたが、結果が飲み込まれ、チェーンの残りの部分に渡されないことskipUntil()
に気付きました。skipUntil()
以下は、私たちが達成したいことを示す大まかな JS コードです。
const fetchUserEpic = action$ =>
action$.ofType(FETCH_USER)
.skipUntil( /* first request completes */ )
.mergeMap(action =>
ajax.getJSON(`/api/users/${action.payload}`)
.map(response => fetchUserFulfilled(response))
.takeUntil(action$.ofType(FETCH_USER_CANCELLED))
);
オブザーバブルが進行中の場合はすべてのアイテムを無視しながら、一度に1つのリクエストのみを尊重するように動作するskipMap()
オペレーターが必要なようです。switchMap()
提案をありがとう。