RxJS 6 静态合并在哪里?
Where is RxJS 6 static merge?
在 RxJS 6 中,如何导入静态合并函数来合并 Observable 列表?
我希望能够做到:
const merged$ = merge(
obs1$,
obs2$,
obs3$
);
我试过:
import { merge } from 'rxjs/observable/merge';
和
import { merge } from 'rxjs/operators';
但似乎都没有给我想要的东西。
在 RxJS 6 中导入变得很容易:
import { merge } from 'rxjs';
您可能想阅读 official migration guide。
关于在 RxJS 6 中导入的另一个有用资源是 this talk Ben Lesh,他是 RxJS 的负责人。
我相信现在 "creation" 类 被删除后,推荐的方法是直接从 'rxjs'
:
导入
import { merge as mergeStatic } from 'rxjs';
RxJS 6 的先前 alpha 版本曾经有 'rxjs/create'
文件,但已被删除:https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md#600-alpha3-2018-02-06
然而,这需要您 use path maps correctly 否则您将导入很多您不需要的东西。如果您不使用路径映射或对您隐藏的构建过程,您可以直接导入正确的文件:
import { merge as mergeStatic } from 'rxjs/internal/observable/merge';
从 RXJS 6 开始。合并在 rxjs/operators
import { map, take, merge, switchMap, filter } from 'rxjs/operators';
RxJS 7.X
在 RxJS v7.X 中,merge()
方法 已弃用 并将在 RxJS v8.X 中删除,使用 mergeWith()
相反。
参见:
https://rxjs.dev/api/operators/mergeWith
https://rxjs.dev/api/operators/merge(已删除)
import { fromEvent } from 'rxjs';
import { map, mergeWith } from 'rxjs/operators';
const clicks$ = fromEvent(document, 'click').pipe(map(() => 'click'));
const mousemoves$ = fromEvent(document, 'mousemove').pipe(map(() => 'mousemove'));
const dblclicks$ = fromEvent(document, 'dblclick').pipe(map(() => 'dblclick'));
mousemoves$.pipe(
mergeWith(clicks$, dblclicks$),
)
.subscribe(x => console.log(x));
// result (assuming user interactions)
// "mousemove"
// "mousemove"
// "mousemove"
// "click"
// "click"
// "dblclick"
(示例来自 api 文档)
在 RxJS 6 中,如何导入静态合并函数来合并 Observable 列表?
我希望能够做到:
const merged$ = merge(
obs1$,
obs2$,
obs3$
);
我试过:
import { merge } from 'rxjs/observable/merge';
和
import { merge } from 'rxjs/operators';
但似乎都没有给我想要的东西。
在 RxJS 6 中导入变得很容易:
import { merge } from 'rxjs';
您可能想阅读 official migration guide。
关于在 RxJS 6 中导入的另一个有用资源是 this talk Ben Lesh,他是 RxJS 的负责人。
我相信现在 "creation" 类 被删除后,推荐的方法是直接从 'rxjs'
:
import { merge as mergeStatic } from 'rxjs';
RxJS 6 的先前 alpha 版本曾经有 'rxjs/create'
文件,但已被删除:https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md#600-alpha3-2018-02-06
然而,这需要您 use path maps correctly 否则您将导入很多您不需要的东西。如果您不使用路径映射或对您隐藏的构建过程,您可以直接导入正确的文件:
import { merge as mergeStatic } from 'rxjs/internal/observable/merge';
从 RXJS 6 开始。合并在 rxjs/operators
import { map, take, merge, switchMap, filter } from 'rxjs/operators';
RxJS 7.X
在 RxJS v7.X 中,merge()
方法 已弃用 并将在 RxJS v8.X 中删除,使用 mergeWith()
相反。
参见:
https://rxjs.dev/api/operators/mergeWith
https://rxjs.dev/api/operators/merge(已删除)
import { fromEvent } from 'rxjs';
import { map, mergeWith } from 'rxjs/operators';
const clicks$ = fromEvent(document, 'click').pipe(map(() => 'click'));
const mousemoves$ = fromEvent(document, 'mousemove').pipe(map(() => 'mousemove'));
const dblclicks$ = fromEvent(document, 'dblclick').pipe(map(() => 'dblclick'));
mousemoves$.pipe(
mergeWith(clicks$, dblclicks$),
)
.subscribe(x => console.log(x));
// result (assuming user interactions)
// "mousemove"
// "mousemove"
// "mousemove"
// "click"
// "click"
// "dblclick"
(示例来自 api 文档)