同僚と私はAndroidアプリケーションにフローのようなフローを追加して、最初のコールが完了するまでアクションの受信を停止する叙事詩を作成する方法を理解できません。最初のリクエストが完了するまでアクションを無視するEpic
私は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))
);
それは、観察が進行中である場合は、すべての項目を無視して、私は、switchMap()
のように動作しますが、一度に一つのリクエストを尊重skipMap()
オペレータを必要とするほとんどのようなものです。
ありがとうございます。
ありがとうございます。私はこれを試してみましょう。私たちが考えているユースケースは、元の返答が返ってくる前にユーザーが送信ボタンをすばやくクリックしたり、データを更新しようとした場合です。 – jachenry
リクエストが機内で行われている間に送信ボタンを無効にすると、より良い/より安全なオプションになります(FETCH_USERで設定された状態、FETCH_FULLFILLED/CANCELEDでリセットされます) – Gluck