日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Rxjs--创建操作符

發布時間:2025/7/14 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Rxjs--创建操作符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

創建操作符中除了repeat都是靜態方法直接從Rx.Observable上使用

取代回調函數(bindCallback、fromPromise)、直接創建(creat、Observable構造函數、from、of、fromEvent)、

惰性創建(defer)、范圍連續整數值(range)、連續整數(interval、timer)、重復(repeat)、

用于組合(never、empty、throw)

bindCallback

public static bindCallback(func: function, selector: function, scheduler: Scheduler): function(...params: *): Observable

給它一個簽名為f(x, callback)的函數 f ,返回一個函數 g , 調用 'g(x)' 的時候會返回一個 Observable.

很重要的一點是,輸出函數返回的 Observable 被訂閱之前,輸入函數是不會執行的.

名稱類型屬性描述
funcfunction?

最后一個參數是回調的函數。

selectorfunction

可選的

選擇器,從回調函數中獲取參數并將這些映射為一個 Observable 發出的值。

schedulerScheduler

可選的

調度器,調度回調函數。默認是同步的

selector 函數接受和回調一樣的參數,返回 Observable 發出的值。在默認情況下,傳遞給回調的多個參數將在流中顯示為數組。選擇器函數直接用參數調用,就像回調一樣.

bindNodeCallback

public static bindNodeCallback(func: function, selector: function, scheduler: Scheduler): *

就像是?bindCallback, 但是回調函數必須形如?callback(error, result).

從文件系統中讀取文件并且從 Observable 中獲取數據。 import * as fs from 'fs'; var readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile); var result = readFileAsObservable('./roadNames.txt', 'utf8'); result.subscribe(x => console.log(x), e => console.error(e));

create

public static create(onSubscription: function(observer: Observer): TeardownLogic): Observable

創建一個新的 Observable, 當觀察者(?Observer?)訂閱該 Observable 時, 它會執行指定的函數.

defer

public static defer(observableFactory: function(): SubscribableOrPromise): Observable

創建一個 Observable, 當被訂閱的時候, 調用 Observable 工廠為每個觀察者創建新的 Observable. 延遲創建 Observable, 也就是說, 當且僅當它被訂閱的時候才創建

empty

public static empty(scheduler: Scheduler): Observable

僅僅發出 complete 通知,其他什么也不做

from

public static from(ish: ObservableInput<T>, scheduler: Scheduler): Observable<T>

從一個數組、類數組對象、Promise、迭代器對象或者類 Observable 對象創建一個 Observable

fromEvent

public static fromEvent(target: EventTargetLike, eventName: string, options: EventListenerOptions, selector: SelectorMethodSignature<T>): Observable<T>

創建一個來自于 DOM 事件,或者 Node 的 EventEmitter 事件或者其他事件的 Observable

fromEventPattern

public static fromEventPattern(addHandler: function(handler: Function): any, removeHandler: function(handler: Function, signal?: any): void, selector: function(...args: any): T): Observable<T>

將任何 addHandler/removeHandler 的API轉化為 Observable

function addClickHandler(handler) {document.addEventListener('click', handler); }function removeClickHandler(handler) {document.removeEventListener('click', handler); }

fromPromise

public static fromPromise(promise: PromiseLike<T>, scheduler: Scheduler): Observable<T>

返回一個僅僅發出 Promise resolve 過的值然后完成的 Observable

generate

Observable構造函數,和creat一樣

interval

public static interval(period: number, scheduler: Scheduler): Observable

interval?返回一個發出無限自增的序列整數, 你可以選擇固定的時間間隔進行發送。 第一次并 沒有立馬去發送, 而是第一個時間段過后才發出。 默認情況下, 這個操作符使用 async 調度器來 提供時間的概念,但也可以給它傳遞任意調度器。

名稱類型屬性描述
periodnumber
  • 可選的
  • 默認值: 0

時間間隔,它以毫秒為單位(默認),或者由調度器的內部時鐘決定的時間單位。

schedulerScheduler
  • 可選的
  • 默認值: async

調度器,用來調度值的發送并提供”時間“的概念。

never

public static never(): Observable

這個靜態操作符對于創建既不發出數據也不觸發錯誤和完成通知的 Observable。 可以用來測試或 者和其他 Observables進行組合。 注意,由于不會發送完成通知,這個 Observable 的 subscription 不會被自動地清理。Subscriptions 需要手動清理。

of

public static of(values: ...T, scheduler: Scheduler): Observable<T>

這個靜態操作符適用于創建簡單的 Observable, 該 Observable 只發出給定的參數, 在發送完這些參數后發出完成通知。它可以用來和其他 Observables 組合比如說concat。 默認情況下, 它使用null調度器,這意味著next通知是同步發出的, 盡管使用不同的調度器可以決定這些通知何時送到。

repeat

public repeat(count: number): Observable

返回的 Observable 重復由源 Observable 所發出的項的流,重復 count 次

repeatWhen

public repeatWhen(notifier: function(notifications: Observable): Observable): Observable

返回的 Observalbe 是源 Observable 的鏡像,除了?complete?。如果源 Observable 調用了?complete,這個方法會發出給?notifier?返回的 Observable 。如果這個 Observale 調用了?complete?或?error,那么這個方法會在子 subscription 上調用?complete?或?error?。

let clicks = Rx.Observable.fromEvent(document, 'click');let observable = Rx.Observable.of(1, 2);let subscription = observable.repeatWhen(() => clicks);subscription.subscribe(res => console.log(res));

range

public static range(start: number, count: number, scheduler: Scheduler): Observable

range?操作符順序發出一個區間范圍內的連續整數, 你可以決定區間的開始和長度。 默認情況下, 不使用 調度器僅僅同步的發送通知, 但是也可以可選的使用可選的調度器來控制發送。

throw

public static throw(將具體的: any, scheduler: Scheduler): Observable

這個靜態操作符對于創建簡單的只發出錯誤通知的 Observable 十分有用。 可以被用來和其他 Observables 組合, 比如在?mergeMap?中使用

timer

public static timer(initialDelay: number | Date, period: number, scheduler: Scheduler): Observable
initialDelaynumber?|?Date?

在發出第一個值 0 之前等待的初始延遲時間。

periodnumber
  • 可選的

連續數字發送之間的時間周期。

schedulerScheduler
  • 可選的
  • 默認值: async

調度器,用來調度值的發送, 提供“時間”的概念。

就像是interval, 但是可以指定什么時候開始發送

轉載于:https://my.oschina.net/u/3412211/blog/1606564

總結

以上是生活随笔為你收集整理的Rxjs--创建操作符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。