我々はこのようなウォッチャーサガを書くように言われていますか?彼らはここで同じことをしませんか?利回り*デリゲート演算子は<a href="http://yelouafi.github.io/redux-saga/docs/introduction/BeginnerTutorial.html" rel="nofollow">Redux Sagas Beginner Tutorial</a>で
答えて
LUH3417によれば、takeEverはジェネレータなので、このインスタンスでは(委譲する)ことができます。ドキュメントから:
function* takeEvery(pattern, saga, ...args) {
while (true) {
const action = yield take(pattern)
yield fork(saga, ...args.concat(action))
}
}
私の推測では、制御フローに関するものです。イテレータがtakeEvery以外の何かを生成することを気にしない場合、コントロールフローを完全に終了させる必要がある理由はありません。あなたのジェネレータが別のジェネレータに制御を渡す必要があった場合、戻ってきて、制御を渡すのがわかりましたが、あなたの例では、takeEveryに委譲する必要があるコード理由はありません。私が間違っている場合は、私に知らせてください。作曲サガから http://yelouafi.github.io/redux-saga/docs/advanced/ComposingSagas.html
http://yelouafi.github.io/redux-saga/docs/advanced/SequencingSagas.html
(Iこのページは、実際に追加されました今日)
:
これは私の質問に答えていないようです。ジェネレータを実行するためにジェネレータに委任する必要はありません。なぜ、**単に 'yield'を使うのですか? – AjaxLeung
私の推測では、制御フローです。イテレータがtakeEvery以外の何かを生成することを気にしない場合、コントロールフローを完全に終了させる必要がある理由はありません。あなたのジェネレータが別のジェネレータに制御を渡す必要があった場合、戻ってきて、制御を渡すのがわかりましたが、あなたの例では、takeEveryに委譲する必要があるコード理由はありません。私が間違っている場合は、私に知らせてください。 –
これらの2つのリンクが説明するのに役立つかもしれ
yield*
のみタスクのシーケンシャルな構成を可能にし、一度に1つの発電機に*をつけるだけです。
私はまだ自分自身ですべてを試していますが、おそらくyield*
とtakeEvery
のアクションでは、サブタスク(例ではincrementAsync
)が呼び出されますが、前のサブタスクが解決されると順次実行されます。 yield
を使用する場合は、すべてのINCREMENT_ASYNC
アクションに対して、すぐにサブタスクを呼び出し、並列実行して解決します。
を使用するtakeLatest
を使用すると、前の新しい要求をキャンセルするという点でtakeEvery
と異なります。
リンクが死んでいる、代わりにしてください。 – Marecky
- 1. 私は<a href="https://github.com/redux-observable/redux-observable" rel="nofollow">redux-observable</a>を使用しています
- 2. 反応-Reduxのフォームをディスパッチは、私は<a href="https://davidkpiano.github.io/react-redux-form/" rel="nofollow noreferrer">react-redux-forms</a>を使用して<a href="https://davidkpiano.github.io/react-redux-form/docs/guides/quickstart.html" rel="nofollow noreferrer">quick start</a>を、次の午前小道具
- 3. 演算子$を抽出するのは本当に必要ですか? <a href="http://data.princeton.edu/R/linearModels.html" rel="nofollow noreferrer">http://data.princeton.edu/R/linearModels.html</a>を勉強
- 4. オーバーロード比較です演算子「無効な演算子は、<」
- 5. 条件演算子と比較デリゲート
- 6. ユニットテストRedux Sagas
- 7. <<演算子とC++の文字列のオーバーロード+演算子
- 8. "<" 演算子は、Python
- 9. Ruby:<< - 演算子
- 10. - a vs a - 、演算子の優先度
- 11. <a href="http://en.cppreference.com/w/cpp/language/operator_other" rel="nofollow noreferrer">cppreference.com</a>からプレC++ 14テンプレートメタプログラミング及び条件演算子
- 12. redux-sagasコールバック(別名:sagasとsetState)
- 13. redux-observable、promise.all()のような演算子のやり方は?
- 14. 演算子<<、C++抽象クラスで
- 15. Groovy、ZipOutputStreamで<<演算子をオーバーロード
- 16. CPPエラーで<<演算子
- 17. フラスコ-ログインパッケージは<a href="http://flask.pocoo.org/" rel="nofollow">Flask</a> 0.8で
- 18. 城ウィンザー:<a href="http://mef.codeplex.com/" rel="nofollow">MEF</a>では既存のオブジェクト
- 19. 演算子$ arrayElemAt <3.2
- 20. 演算子〜<〜Postgresの
- 21. Spark SQL "<=>"演算子
- 22. は、Invoke演算子&演算子はKotlin
- 23. Rプロット:(。<a href="https://commons.wikimedia.org/wiki/File:All_palaeotemps.svg" rel="nofollow noreferrer">Original image</a>と<a href="http://gergs.net/?attachment_id=4310" rel="nofollow noreferrer">data</a>)非一様番号
- 24. この<a href="https://cloud.google.com/compute/docs/instances/connecting-to-instance#generatesshkeypair" rel="nofollow noreferrer">link</a>でGoogleの計算
- 25. 挿入演算子のオーバーロードにはどのような問題がありますか? (<<演算子)
- 26. observerをredux-sagasに渡す
- 27. 演算子( - - )()演算子C#
- 28. 電子は、私が<a href="https://electron.atom.io" rel="nofollow noreferrer">Electron</a>に新たなんだコンテンツ
- 29. 演算子if演算子
- 30. '演算子<<' のstdで::演算子<< [_Traits =のstdと:: char_traits <char>]
'takeEvery'はイテレータを返し、' yield * 'はこのイテレータにデリゲートします。通常の「yield」は、このイテレータを呼び出し元に返します。 – ftor
イテレータを呼び出し元に返すだけの欠点は何ですか?いずれにしても、イテレーターは使い果たされるまで実行されます。これは私が起こりたいことです。 – AjaxLeung
発信者が自動的にジェネレータを呼び出すようです。多分、これはRedux Sagas特有の動作です。 – AjaxLeung