У меня есть два наблюдаемых потока, которые делают очень отдельные логики отображения c, но в конечном итоге заканчиваются следующими 3 операторами:
this.selection
.pipe(
..Custom mapping operators
tap(_ => this.devicesLoading = true),
switchMap(d => this.mapService.findLocationForDevices(d)),
map(loc => marker([loc.latitude, loc.longitude])
)
.subscribe(markers => this.plotMarkers(markers));
Я хочу переместить последние tap, switchMap, map
операторы в общую функцию поэтому я могу просто применить их в обоих моих наблюдаемых потоках.
Я думал о том, чтобы сделать:
private resolveLocationsAndConvertToMarkers = (devices: String[]) => [
tap(_ => this.devicesLoading = true),
switchMap((devices: string[]) => this.mapService.findLocationForDevices(devices)),
map(loc => marker([loc.latitude, loc.longitude])
];
Но я не был уверен, как распределить эти операторы в аргументы канала, как : #
this.selection
.pipe(
// Custom mapping operators
... this.resolveLocationsAndConvertToMarkers
)
.subscribe(markers => this.plotMarkers(markers));
это ошибки, которые there are no overloads that expect 3 or 5 arguments
..