日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Rxjs--创建操作符

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

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

創(chuàng)建操作符中除了repeat都是靜態(tài)方法直接從Rx.Observable上使用

取代回調(diào)函數(shù)(bindCallback、fromPromise)、直接創(chuàng)建(creat、Observable構(gòu)造函數(shù)、from、of、fromEvent)、

惰性創(chuàng)建(defer)、范圍連續(xù)整數(shù)值(range)、連續(xù)整數(shù)(interval、timer)、重復(repeat)、

用于組合(never、empty、throw)

bindCallback

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

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

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

名稱類型屬性描述
funcfunction?

最后一個參數(shù)是回調(diào)的函數(shù)。

selectorfunction

可選的

選擇器,從回調(diào)函數(shù)中獲取參數(shù)并將這些映射為一個 Observable 發(fā)出的值。

schedulerScheduler

可選的

調(diào)度器,調(diào)度回調(diào)函數(shù)。默認是同步的

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

bindNodeCallback

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

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

從文件系統(tǒng)中讀取文件并且從 Observable 中獲取數(shù)據(jù)。 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

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

defer

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

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

empty

public static empty(scheduler: Scheduler): Observable

僅僅發(fā)出 complete 通知,其他什么也不做

from

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

從一個數(shù)組、類數(shù)組對象、Promise、迭代器對象或者類 Observable 對象創(chuàng)建一個 Observable

fromEvent

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

創(chuàng)建一個來自于 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轉(zhuǎn)化為 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>

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

generate

Observable構(gòu)造函數(shù),和creat一樣

interval

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

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

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

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

schedulerScheduler
  • 可選的
  • 默認值: async

調(diào)度器,用來調(diào)度值的發(fā)送并提供”時間“的概念。

never

public static never(): Observable

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

of

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

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

repeat

public repeat(count: number): Observable

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

repeatWhen

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

返回的 Observalbe 是源 Observable 的鏡像,除了?complete?。如果源 Observable 調(diào)用了?complete,這個方法會發(fā)出給?notifier?返回的 Observable 。如果這個 Observale 調(diào)用了?complete?或?error,那么這個方法會在子 subscription 上調(diào)用?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?操作符順序發(fā)出一個區(qū)間范圍內(nèi)的連續(xù)整數(shù), 你可以決定區(qū)間的開始和長度。 默認情況下, 不使用 調(diào)度器僅僅同步的發(fā)送通知, 但是也可以可選的使用可選的調(diào)度器來控制發(fā)送。

throw

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

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

timer

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

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

periodnumber
  • 可選的

連續(xù)數(shù)字發(fā)送之間的時間周期。

schedulerScheduler
  • 可選的
  • 默認值: async

調(diào)度器,用來調(diào)度值的發(fā)送, 提供“時間”的概念。

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

轉(zhuǎn)載于:https://my.oschina.net/u/3412211/blog/1606564

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。