const observable$ = iif(() => this.shippingTabModified,
//Shipping Tab Modified True
of(this.updateShippingInfo())
.pipe(),
//IF Shipping Tab Not Modified
of(this.shippingInfoService.getShipmentInfoByCardIdObservable(this.data.CardId))
.pipe()
)
observable$.subscribe();
從上面的代碼我想實作以下場景
if(foo === true)
{
updatemethod()
}
// if foo is true and update method is executed we need to wait until update method is finished then go to second method
// If foo is false we can call second method without waiting
secondmethod();
但是從我上面寫的 rxjs 代碼中,它總是去更新方法,它沒有考慮this.shippingTabModified
uj5u.com熱心網友回復:
您可以利用該concat功能并執行類似的操作
const observables$ = condition ? [obs$1, obs$2] : [obs$2];
concat(...observables$).subscribe();
干杯
uj5u.com熱心網友回復:
為什么不直接使用
const obs$ = this.shippingTabModified ?
of(this.updateShippingInfo()) :
this.shippingInfoService.getShipmentInfoByCardIdObservable(this.data.CardId);
obs$.subscribe();
編輯
呼叫條件:
const obs$ = of(this.updateShippingInfo()).pipe(
switchMap(res => this.shippingTabModified ?
of(res) :
this
.shippingInfoService
.getShipmentInfoByCardIdObservable(this.data.CardId)
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/465665.html
