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>

文檔沒說怎麼用

相關文章
相關標籤/搜索