Rxjs CombineLatestと@角度/材料源で、その使用のためのObject.assign説明

JS恋人:

私はこのコードで何が起こっているかを理解しようとしています。

私はcombineLatest値を発する理解し、各観察から放出された最後の値を発します。そしてObject.assignコピー対象物に1つ以上のソースオブジェクトからのすべての列挙独自のプロパティ。

私はこれまでのところを理解し、しかし、私は取得しないことは、彼らはそのコンテキストで(combineLatestとObject.assign)一緒に使用されている方法です。

combineLatest(_route.pathFromRoot.map(route => route.params), Object.assign)

これは参照ですhttps://github.com/angular/material.angular.io/blob/master/src/app/pages/component-category-list/component-category-list.ts#L28

マーティン:

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)ながら、combineLatest1つのアレイ内の更なる伝播し、それらを([res1, res2, res3])私は使用できない理由ですようにmap(Object.assign)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=281291&siteId=1