W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在預(yù)訂時(shí)確定將實(shí)際預(yù)訂 Observable 的時(shí)間。
iif<T = never, F = never>(condition: () => boolean, trueResult: SubscribableOrPromise
<T> = EMPTY, falseResult: SubscribableOrPromise
<F> = EMPTY): Observable
<T | F>
condition | 應(yīng)該選擇可觀察的條件。 |
---|---|
trueResult | 可選的。默認(rèn)值為EMPTY 。類型:。SubscribableOrPromise |
錯(cuò)誤結(jié)果 | 可選的。默認(rèn)值為EMPTY 。類型:。SubscribableOrPromise |
Observable<T | F>
:根據(jù)情況,第一個(gè)或第二個(gè)可觀察值。
If
Observables的聲明。
iif
接受條件函數(shù)和兩個(gè) Observable。訂閱操作員返回的Observable時(shí),將調(diào)用條件函數(shù)。根據(jù)此時(shí)返回的布爾值,使用者將訂閱第一個(gè) Observable(如果條件為 true)或第二個(gè)(如果條件為 false)。條件函數(shù)也可能不返回任何內(nèi)容-在這種情況下,條件將被評(píng)估為 false,第二個(gè) Observable 將被訂閱。
請(qǐng)注意,兩種情況(true 和 false)的 Observables 是可選的。如果條件指向未定義的 Observable,則結(jié)果流將立即立即完成。這樣,您可以在運(yùn)行時(shí)確定使用者是否應(yīng)有權(quán)訪問(wèn)給定的 Observable,而不是控制將訂閱哪個(gè) Observable。
如果您具有更復(fù)雜的邏輯,需要在兩個(gè)以上的 Observable 之間進(jìn)行決策,defer
則可能是一個(gè)更好的選擇。實(shí)際上,iif
可以方便地實(shí)現(xiàn),defer
并且僅出于方便和易讀性的原因而存在。
import { iif, of } from 'rxjs';
let subscribeToFirst;
const firstOrSecond = iif(
() => subscribeToFirst,
of('first'),
of('second'),
);
subscribeToFirst = true;
firstOrSecond.subscribe(value => console.log(value));
// Logs:
// "first"
subscribeToFirst = false;
firstOrSecond.subscribe(value => console.log(value));
// Logs:
// "second"
let accessGranted;
const observableIfYouHaveAccess = iif(
() => accessGranted,
of('It seems you have an access...'), // Note that only one Observable is passed to the operator.
);
accessGranted = true;
observableIfYouHaveAccess.subscribe(
value => console.log(value),
err => {},
() => console.log('The end'),
);
// Logs:
// "It seems you have an access..."
// "The end"
accessGranted = false;
observableIfYouHaveAccess.subscribe(
value => console.log(value),
err => {},
() => console.log('The end'),
);
// Logs:
// "The end"
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)系方式:
更多建議: