- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在RxJava中,有Observable.OnSubscribe当有东西订阅可观察对象时,它将调用您的操作。
RxJs 中有等效的吗?
<小时/>自从提出这个问题以来,他们似乎已经删除了该页面。 Google的缓存版本lives here .
最佳答案
非常喜欢 Mark 的回答,但如果您使用的是 rxjs
版本 5 或更高版本,我更喜欢使用纯函数而不是修补原型(prototype)。
按照 Ray 的建议,使用 defer
实现无 empty
concat
hack
import {defer} from 'rxjs/observable/defer';
import {Observable} from 'rxjs/Observable';
/** Example
import {from} from 'rxjs/observable/from';
from([1, 2, 3])
.pipe(doOnSubscribe(() => console.log('subscribed to stream')))
.subscribe(x => console.log(x), null, () => console.log('completed'));
*/
export function doOnSubscribe<T>(onSubscribe: () => void): (source: Observable<T>) => Observable<T> {
return function inner(source: Observable<T>): Observable<T> {
return defer(() => {
onSubscribe();
return source;
});
};
}
https://gist.github.com/evxn/750702f7c8e8d5a32c7b53167fe14d8d
import {empty} from 'rxjs/observable/empty';
import {concat, tap} from 'rxjs/operators';
import {Observable} from 'rxjs/Observable';
/** Example
import {from} from 'rxjs/observable/from';
from([1, 2, 3])
.pipe(doOnSubscribe(() => console.log('subscribed to stream')))
.subscribe(x => console.log(x), null, () => console.log('completed'));
*/
export function doOnSubscribe<T>(callback: () => void): (source: Observable<T>) => Observable<T> {
return function inner(source: Observable<T>): Observable<T> {
return empty().pipe(
tap(null, null, callback),
concat<T>(source)
);
};
}
关于rxjs - RxJ 中的 Observable.onSubscribe 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41883339/
我不知道如何解决以下问题。 有一个对象类型: Box { Fruit[n]: { Kinds[n]: { id: string; name: st
简单问题:出现错误时 .do() 会触发吗?文档说:“对源 Observable 上的每次发射执行副作用,但返回与源相同的 Observable。”错误也被视为排放吗? return this.aut
DRY(不要重复自己) 假设我在我的应用程序中经常使用此代码: observable$.pipe( tap(value => console.log(value)), map(value =>
我想在我的网站中创建搜索引擎。我想使用 switchMap 取消之前的请求,因为这个函数运行异步。 我通过 keyup 从输入中获取数据,例如: typescript subject = new S
我正在尝试使用 RxJS 捕获用户击键,并为每个击键生成一个结果对象,其中包含键、击键的持续时间(时间keyup 和 keydown 事件之间),以及先前笔划之间的间隔(使用 timeInterval
您以前见过这个问题,但我想了解这个问题在 RxJs 中的流程。 array1 = ["cat", "dog", "taco"] array2 = ["cat", "dog", "fish"] 过滤ar
我有以下属性 private messages$: BehaviorSubject>; public readonly messages: Observable>; 我正在通过 this.me
我只是想使用map函数,但它抛出一个错误。在results.map(results =>等)里面,它说“符号映射无法正确解析,可能它位于无法访问的模块中” , import { Component,
在RxJava中,有Observable.OnSubscribe当有东西订阅可观察对象时,它将调用您的操作。 RxJs 中有等效的吗? 自从提出这个问题以来,他们似乎已经删除了该页面。 Google的
我无法理解使用 Lodash 可以轻松完成的事情。我需要 groupBy 和 sum,类似这样,仅使用 RxJs: let arr = [ {n: 'a', q: 1 },
我的应用程序中有 2 项服务。一个通过网络加载 youTube 评论线程和评论的 youTube 服务,以及一个管理批量评论加载的评论服务。评论服务特定于我的应用,youTube 服务与应用无关。 我
我想使用 RxJs (5.0.0-Beta.6) 和 TypeScript (1.8.10) 创建一个 JS 库>. 我的简单 TypeScript 文件正在编译。我有这个文件: MyLib.ts:
我正在编写一个需要很长时间运行的进程,并且我正在寻求优化已用内存 我有一个随着时间推移而来的数据流,我想要一种方法来在流完成时清理这些数据和声明的变量。有什么想法吗? 我已经设置了一个问题的快速示例:
我是一名优秀的程序员,十分优秀!