-1
次の構文は何を意味しますか?私は収穫後に*
の使用を理解していません。私は発電機、Reduxの、そしてサガに新たなんだので、私はどのような構文*
、takeEvery()
を理解するいくつかの助けをいただければ幸いです、とreturn function *(action) {
は行いますこのジェネレータ構文は何をしますか?
var MIDDLEWARES = []
function builder() {
const LOAD_DATA = "POI_LOADER/LOAD_POIS"
MIDDLEWARES.push(function *sagaFunction() {
yield *takeEvery(LOAD_DATA, loadData(statusField))
})
}
const loadData = (statusField) => {
return function *(action) {
console.log("action.venueId = " + action.venueId)
}
}
いくつかの質問がここにあります
yield *takeEvery()
にある*
の意味は何ですか?答えはDelegated yield (yield star, yield *) in generator functionsと思われます。yield *
ステートメントが含まれているため、builder()関数に発電機にするには、なぜ*
が必要になりませんか?これは、yield *takeEvery()
がジェネレータ関数sagaFunction()
にラップされているためですか?- 特に、その前に
*
があるとすれば、takeEvery()
の機能は何ですか?私はtakeEvery()
だと思います。そのdocumentationに基づいて、loadData()
をLOAD_DATA
のすべてに適用すると思います。しかし、LOAD_DATA
が配列でない場合は、takeEvery()
がこのコードに必要ですか? - どのように宣言には、
return function *(action)
関数の名前がないようですか?それは入力パラメータaction
を持つジェネレータを宣言し、そのジェネレータをconst
のloadData
と割り当てていますか? - このコードで作成された発電機でSagaライブラリから
next()
がコールされていますか?
それは法的ですか?それは奇妙に見えます。 '*'はキーワードの一部です。つまり、 'function *'と 'yield *'です。私は空白が許されていることを知らなかった、それは狂っている。 –
[clicky](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield*) – Cypher