私はこのコードで何が起こっているかを理解しようとしています。
私はcombineLatest値を発する理解し、各観察から放出された最後の値を発します。そしてObject.assignコピー対象物に1つ以上のソースオブジェクトからのすべての列挙独自のプロパティ。
私はこれまでのところを理解し、しかし、私は取得しないことは、彼らはそのコンテキストで(combineLatestとObject.assign)一緒に使用されている方法です。
combineLatest(_route.pathFromRoot.map(route => route.params), Object.assign)
combineLatest
オプションの持っていたresultSelector
あなたは何でもしたかったために、結果をマップすることができ、パラメータを。そこで、彼らは使用しているObject.assign
としてresultSelector
。このパラメータは、現在推奨されていて、あなたが使用する必要がありますmap()
代わりに。https://github.com/ReactiveX/rxjs/blob/master/src/internal/observable/combineLatest.ts#L17
彼らは1つのオブジェクトにすべての排出量をマージするために、この構文を使用しているので、(私はそれが使用するのはかなり賢いやり方だと思うObject.assign
方法:)で)。
なしの同等のコードresultSelector
のパラメータは、私が思うに、このようにする必要があります:
combineLatest(_route.pathFromRoot.map(route => route.params))
.pipe(
map(Object.assign.apply),
)
resultSelector
機能は、個別の引数として結果を受け(res1, res2, res3)
ながら、combineLatest
1つのアレイ内の更なる伝播し、それらを([res1, res2, res3])
私は使用できない理由ですようにmap(Object.assign)
。