W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如果 Observable 在給定的時(shí)間段內(nèi)未發(fā)出值,則發(fā)生錯(cuò)誤 訂閱第二個(gè) Observable。
timeoutWith<T, R>(due: number |Date
, withObservable: any, scheduler: SchedulerLike
= async): OperatorFunction
<T, T | R>
到期 | 數(shù)字指定 Observable 必須在其內(nèi)發(fā)出值的時(shí)間或日期指定可觀察的完成時(shí)間 |
---|---|
可觀察 | 如果源未通過(guò)超時(shí)檢查,將被訂閱的 Observable。 |
調(diào)度器 | 可選的。 默認(rèn)值為 async 。 調(diào)度程序控制何時(shí)進(jìn)行超時(shí)檢查。 |
OperatorFunction<T, T | R>
:反映源的行為的 Observable,或者在超時(shí)檢查失敗時(shí)反映 Observable 的行為 作為第二個(gè)參數(shù)傳遞。
這是 的一個(gè)版本, timeout
運(yùn)算符 可讓您指定后備 Observable。
timeoutWith
是 的變體 timeout
運(yùn)算符 。 它的行為完全一樣, 仍然接受數(shù)字或日期作為第一個(gè)參數(shù),分別控制- 什么時(shí)候應(yīng)該發(fā)出源 Observable 的值或何時(shí)完成。
唯一的區(qū)別是它接受第二個(gè)必需參數(shù)。 這個(gè)參數(shù) 應(yīng)該是一個(gè) Observable,當(dāng)源Observable在任何超時(shí)檢查中失敗時(shí)將被訂閱。 因此,只要常規(guī) timeout
會(huì)發(fā)出錯(cuò)誤, timeoutWith
就會(huì)開(kāi)始重新發(fā)出 第二個(gè) Observable 的值。 請(qǐng)注意,不會(huì)檢查此后備 Observable 超時(shí) 本身,因此它可以發(fā)出值并在任意時(shí)間點(diǎn)完成。 從一瞬間開(kāi)始 訂閱,從 返回的 Observable timeoutWith
簡(jiǎn)單鏡像后備流 。 什么時(shí)候流完成,它也完成。
調(diào)度程序(在 情況下 timeout
作為第二個(gè)參數(shù)提供的 )仍可以提供 此處-作為第三個(gè)可選參數(shù)。 它仍然用于安排超時(shí)檢查,并且- 結(jié)果-由于訂閱發(fā)生,第二個(gè) Observable 將被訂閱 檢查失敗后立即進(jìn)行。
添加可觀察到的后備
import { intrerval } from 'rxjs';
import { timeoutWith } from 'rxjs/operators';
const seconds = interval(1000);
const minutes = interval(60 * 1000);
seconds.pipe(timeoutWith(900, minutes))
.subscribe(
value => console.log(value), // After 900ms, will start emitting `minutes`,
// since first value of `seconds` will not arrive fast enough.
err => console.log(err), // Would be called after 900ms in case of `timeout`,
// but here will never be called.
);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: