RxJS generate

2020-10-13 13:54 更新

generate<T, S>(initialStateOrOptions: S | GenerateOptions<T, S>, condition?: ConditionFunc<S>, iterate?: IterateFunc<S>, resultSelectorOrObservable?:SchedulerLike | ResultFunc<S, T>, scheduler?: SchedulerLike): Observable<T>

參量

initialStateOrOptions 類型:S GenerateOptions
condition 可選的。默認(rèn)值為undefined。類型:ConditionFunc
iterate 可選的。默認(rèn)值為undefined。類型:IterateFunc
resultSelectorOrObservable 可選的。默認(rèn)值為undefined。類型:SchedulerLike | ResultFunc
scheduler 可選的。默認(rèn)值為undefined。類型:SchedulerLike。

returns

Observable<T>

超載

generate(initialState: S, condition: ConditionFunc<S>, iterate: IterateFunc<S>, resultSelector: ResultFunc<S, T>, scheduler?: SchedulerLike): Observable<T>通過使用指定的調(diào)度程序發(fā)送觀察者消息,通過運(yùn)行產(chǎn)生該序列元素的狀態(tài)驅(qū)動循環(huán)來生成可觀察序列。參量initialState初始狀態(tài)。健康)狀況終止生成的條件(返回false時(shí))。重復(fù)迭代步驟功能。resultSelector選擇器功能,用于按順序產(chǎn)生的結(jié)果。(已棄用)調(diào)度器可選的。默認(rèn)值為undefined。一個(gè)SchedulerLike在其上運(yùn)行的發(fā)電機(jī)循環(huán)。如果未提供,則默認(rèn)為立即發(fā)出。returnsObservable<T>:生成的序列。生成大理石圖
generate(initialState: S, condition: ConditionFunc<S>, iterate: IterateFunc<S>, scheduler?: SchedulerLike): Observable<S>通過運(yùn)行一個(gè)狀態(tài)驅(qū)動的循環(huán)來生成一個(gè) Observable,該循環(huán)在每次迭代時(shí)都發(fā)出一個(gè)元素。參量 initialState 初始狀態(tài)。健康)狀況終止生成的條件(返回false時(shí))。重復(fù)迭代步驟功能。調(diào)度器可選的。默認(rèn)值為undefined。一個(gè)Scheduler在其上運(yùn)行的發(fā)電機(jī)循環(huán)。如果未提供,則默認(rèn)為立即發(fā)射。returnsObservable<S>:生成的序列。用它代替 for 循環(huán)中的下一個(gè)值。imggenerate 允許您創(chuàng)建使用循環(huán)生成的值流,該值流與傳統(tǒng)的 for 循環(huán)非常相似。的第一個(gè)參數(shù)  generate  是一個(gè)初始值。第二個(gè)參數(shù)是一個(gè)接受該值并測試是否仍然存在某些條件的函數(shù)。如果是這樣,則循環(huán)繼續(xù),否則,循環(huán)停止。第三個(gè)值是一個(gè)函數(shù),它采用先前定義的值,并在每次迭代時(shí)以某種方式對其進(jìn)行修改。請注意,這三個(gè)參數(shù)如何與正則 for 循環(huán)中三個(gè)表達(dá)式的直接等效項(xiàng):第一個(gè)表達(dá)式初始化某個(gè)狀態(tài)(例如,數(shù)字索引),第二個(gè)測試循環(huán)是否可以進(jìn)行下一次迭代(例如,如果索引小于10),第三個(gè)狀態(tài)如何測試定義的值將在每一步上修改(索引將增加一)。generate運(yùn)算符的返回值是一個(gè) Observable,它在每次循環(huán)迭代時(shí)都會發(fā)出一個(gè)值。首先,條件函數(shù)被運(yùn)行。如果返回 true,則 Observable 發(fā)出當(dāng)前存儲的值(第一次迭代時(shí)的初始值),然后使用迭代函數(shù)更新該值。如果在某些情況下條件返回 false,則 Observable 在此時(shí)完成。您可以選擇將第四個(gè)參數(shù)傳遞給generate-結(jié)果選擇器函數(shù),該函數(shù)使您可以立即映射通常由 Observable 發(fā)出的值。如果在 generate調(diào) 用中發(fā)現(xiàn)三個(gè)匿名函數(shù)難以讀取,則可以向操作員提供單個(gè)對象。該對象具有的屬性:initialState, conditioniterate 和 resultSelector,應(yīng)具有相應(yīng)值,你通常會傳遞給 generate。resultSelector 仍然是可選的,但是這種調(diào)用形式 generate 也可以省略 condition。如果省略它,則意味著條件始終成立,因此 Observable 輸出將永遠(yuǎn)不會完成。兩種形式都 generate 可以選擇接受調(diào)度程序。在多參數(shù)調(diào)用的情況下,調(diào)度程序只是作為最后一個(gè)參數(shù)出現(xiàn)(無論是否存在 resultSelector 函數(shù))。如果是單參數(shù)調(diào)用,則可以將其作為 scheduler 傳遞給操作員的對象的屬性來提供 。在這兩種情況下,調(diào)度程序都會決定何時(shí)進(jìn)行循環(huán)的下一次迭代,從而確定 Observable 何時(shí)發(fā)出下一個(gè)值。例如,要確保在事件循環(huán)中將每個(gè)值推送到單獨(dú)任務(wù)上的觀察者,可以使用 async 調(diào)度程序。請注意,默認(rèn)情況下(未傳遞調(diào)度程序時(shí))將簡單地同步發(fā)出值。
generate(options: GenerateBaseOptions<S>): Observable<S>通過使用指定的調(diào)度程序發(fā)送觀察者消息,通過運(yùn)行產(chǎn)生該序列元素的狀態(tài)驅(qū)動循環(huán)來生成可觀察序列。重載接受可能包含初始狀態(tài),迭代,條件和調(diào)度程序的選項(xiàng)對象。參量選項(xiàng)必須包含initialState的對象,必須進(jìn)行迭代,并且可能包含條件和調(diào)度程序。退貨Observable<S>:生成的序列。生成大理石圖
generate(options: GenerateOptions<T, S>): Observable<T>通過使用指定的調(diào)度程序發(fā)送觀察者消息,通過運(yùn)行產(chǎn)生該序列元素的狀態(tài)驅(qū)動循環(huán)來生成可觀察序列。重載接受可能包含初始狀態(tài),迭代,條件,結(jié)果選擇器和調(diào)度程序的選項(xiàng)對象。參量選項(xiàng)必須包含initialState,iterate,resultSelector且可能包含條件和調(diào)度程序的對象。退貨Observable<T>:生成的序列。生成大理石圖
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號