Abr*_*m P 4 javascript observers reactive-programming rxjs
假设我想单独处理 Observable 发出的第一个事件,然后继续我的订阅。
例如,如果我有以下链:
observable.throttleTime(2000)
.takeFirst(() => console.log('potato'))
.switchMap((event:MouseEvent) => {
const element:Element = event.target as Element;
return this.innerObservable(('tomato'));
})
.subscribe(({result}) => console.log(result))
Run Code Online (Sandbox Code Playgroud)
那失败了,但是我将如何使这种行为起作用?
许多采用回调函数的 RxJS 5 操作符也传递正在通过的项目的索引。这意味着您可以编写例如以下内容:
observable.throttleTime(2000)
.map((value, index) => index === 0 ? 'potato' : value)
...
.subscribe(({result}) => console.log(result))
Run Code Online (Sandbox Code Playgroud)
例如,将索引传递给filter()、switchMap()、takeWhile()运算符等。
将发布与first 和concat 运算符一起使用。这是一个例子:
Rx.Observable.interval(1000)
.publish(shared => {
return shared.first().mapTo('FIRST')
.concat(shared.skip(1));
})
.subscribe(x=>console.log(x))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |