は、だから、私はこのサガを選択し、プットがテイクをブロックしているので、SELECT_THING
行動を取って欠場する可能性があることが言われているので、このサガに並行性の問題はありますか?
function* watchSelectThing() {
let currentThing = yield select(getSelectedThing);
while (true) {
yield take(types.SELECT_THING);
const nextSelectedThing = yield select(getSelectedThing);
if (currentThing !== nextSelectedThing) {
currentThing = nextSelectedThing;
yield put(actions.updateSomeOtherThing({}));
yield put(actions.fetchOtherStuff());
}
}
}
のような武勇伝を持っています。たとえば、2つのputの間にSELECT_THING
アクションが発生したとします。私はそれが妥当と思われると思います。
もしそうなら、まだcurrentThing
の必要な状態を維持できる一方で、それをnextSelectedThing
と比較できるようにする方法がありますか?私の脳は今見ていない。
私はそれについて考えていました。しかし、 'yield select(getSelectedThing)'が同じ問題を引き起こすかどうかは疑問です。 –
はい、あなたは正しいです。私はそれに応じて答えを変えた。お役に立てれば! – Alex