Rxjs--工具操做符

测试(do)、延迟发送(delay、delayWhen)、html

转为Promise对象(toPromise)、重设调度器(observeOn、subscribeOn)es6

 

do

public do(nextOrObserver: Observer | function, error: function, complete: function): Observable

拦截源 Observable 上的每次发送而且运行一个函数,但返回的输出 Observable 与 源 Observable 是相同的,只要不发生错误便可异步

delay

public delay(delay: number | Date, scheduler: Scheduler): Observable

经过给定的延时 或者 直到一个给定的时间来延迟源 Observable 值的发送函数

delayWhen

public delayWhen(delayDurationSelector: function(value: T): Observable, subscriptionDelay: Observable): Observable

就像是delay, 可是延时的时间间隔由内部 Observable 决定, 内部 Observable 发出值后会将源 Observable累积下来的值依次发送出去。delay 直到 内部发出值。测试

var seconds = Rx.Observable.interval(1000);
    var clicks = Rx.Observable.fromEvent(document, 'click');
    var result = seconds.delayWhen(() => clicks);
    result.subscribe(x => console.log(x));

materialize

public materialize(): Observable<Notification<T>>

将值包装成 Notification 对象(包含 next、error 和 complete )发送, 并在输出 Observable 上做为 next 发送出去动画

dematerialize

public dematerialize(): Observable

将 Notification 对象的 Observable 转换成它们所表明的发送spa

observeOn

public observeOn(scheduler: IScheduler, delay: number): Observable<T>

使用指定的调度器来从新发出源 Observable 的全部通知code

const intervals = Rx.Observable.interval(10); // 默认状况下,interval 使用异步调度器进行调度

intervals
.observeOn(Rx.Scheduler.animationFrame)       // 但咱们将在 animationFrame 调度器上进行观察,
.subscribe(val => {                           // 以确保动画的流畅性。
  someDiv.style.height = val + 'px';
});

subscribeOn

public subscribeOn(scheduler: Scheduler): Observable<T>

返回: Observable<T> 修改过的源 Observable 以便它的 subscriptions 发生在指定的 IScheduler 上。server

toPromise

public toPromise(PromiseCtor: PromiseConstructor): Promise<T>

将 Observable 序列转换为符合 ES2015 标准的 Promisehtm

Promise<T> 符合 ES2015 标准的 Promise,它使用 Observable 序列的最后一个值

toArray

public toArray(): Observable<any[]> | WebSocketSubject<T> | Observable<T>

文档没说怎么用

timeInterval

public timeInterval(scheduler: *): Observable<TimeInterval<any>> | WebSocketSubject<T> | Observable<T>

文档没说怎么用

timestamp

public timestamp(scheduler: *): Observable<Timestamp<any>> | WebSocketSubject<T> | Observable<T>

文档没说怎么用

timeout

public timeout(due: number, scheduler: Scheduler): Observable<R> | WebSocketSubject<T> | Observable<T>

文档没说怎么用

timeoutWith

public timeoutWith(due: *, withObservable: *, scheduler: *): Observable<R> | WebSocketSubject<T> | Observable<T>

文档没说怎么用

timestamp

public timestamp(scheduler: *): Observable<Timestamp<any>> | WebSocketSubject<T> | Observable<T>

文档没说怎么用

相关文章
相关标签/搜索