在RxJS 6中,如何导入静态合并函数以合并Observable列表?
我希望能够做到:
const merged$ = merge(
obs1$,
obs2$,
obs3$
);
Run Code Online (Sandbox Code Playgroud)
我试过了:
import { merge } from 'rxjs/observable/merge'; 和
import { merge } from 'rxjs/operators';
但似乎都没有给我我想要的东西.
siv*_*636 28
在RxJS 6中轻松导入:
import {merge} from 'rxjs';
Run Code Online (Sandbox Code Playgroud)
您可能需要阅读官方迁移指南.
关于在RxJS 6中导入的另一个有用资源是Ben Lesh的演讲,他是RxJS的领导者.
在 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"
Run Code Online (Sandbox Code Playgroud)
(来自 API 文档的示例)
我相信现在当删除“创建”类时,推荐的方法是直接从'rxjs'以下位置导入:
import { merge as mergeStatic } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)
RxJS 6 以前的 alpha 版本曾经有'rxjs/create'文件,但这已经被删除了:https : //github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md#600-alpha3-2018-02-06
但是,这需要您正确使用路径图,否则您将导入很多不需要的东西。如果您不使用路径映射或隐藏的构建过程,您可以直接导入正确的文件:
import { merge as mergeStatic } from 'rxjs/internal/observable/merge';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9425 次 |
| 最近记录: |