redux-saga の挙動( select ) var eff = mySaga.next(); var data = yield select(foo); [1] ... = mySaga.next() [2] ... = yield select(foo) [3] var eff = ... var data = foo(getState()) mySaga.next(data) [4] var data = ... Saga Runtime Your Saga e.g. (pseudo) “select” effect object { fn: foo }
redux-logic(まだ実戦投入してない ) ✅ 第一印象:Middleware を構造化してくれる Middleware、内部はRxJS ✅ 副作用コードを validate, transform, process の3つに分ける redux-sagaで不可能だったActionの reject が可能! ✅ 好みの方法でロジックを書ける vanilla, RxJS, async/await 処理によって得意分野が違うから、書き分けするのもあり? ✅ サービスがDIされるので比較的テストしやすい(はず) けど、モックは避けられない・・・? ❌ 副作用をデータとして扱っているわけではない 要調査: async/awaitを使った場合のテストは? "I wrote the rxjs code so you won't have to." by @jeffbski