combineLatest
раньше имел необязательный параметр resultSelector
, где вы могли бы сопоставить результаты с тем, что вы хотели. Поэтому они используют Object.assign
как resultSelector
. Этот параметр устарел, и вместо него следует использовать map()
. https://github.com/ReactiveX/rxjs/blob/master/src/internal/observable/combineLatest.ts#L17
Таким образом, они используют этот синтаксис для объединения всех выбросов в один объект (я думаю, что это довольно умный способ использования Object.assign
, кстати:)).
Эквивалентный код без параметра resultSelector
должен выглядеть следующим образом:
combineLatest(_route.pathFromRoot.map(route => route.params))
.pipe(
map(Object.assign.apply),
)
Функция resultSelector
получила результаты в виде отдельных аргументов (res1, res2, res3)
, тогда как combineLatest
распространяет их далее в один массив ([res1, res2, res3])
, поэтому я не могу просто использовать map(Object.assign)
.