[英]Rxjs/lodash throttle - how to use it on condition and in case that the condition may change while app runing?
[英]RXJS how to use OR condition
我有兩個 Observable
例如,我正在等待 HTTP POST 電話回來或 WebSocket 電話回來所以我可以繼續。 無論是打電話回來,我都需要驗證信息,直到滿足特定條件。 以任何一個回來的例子為例,我可以繼續。 但是如果我使用過濾器,它會停止並等待不會繼續。
switchMap(() =>
webSocket.access.pipe(
filter((data) => data.access.role === "ADMIN"),
filter((data) => data.access.status === "ACTIVE")
)
),
switchMap(() =>
httpService.access.pipe(filter((res) => res.access === true))
);
使用race
運營商:
race(
switchMap(() =>
webSocket.access.pipe(
filter((data) => data.access.role === "ADMIN"),
filter((data) => data.access.status === "ACTIVE")
)
),
switchMap(() =>
httpService.access.pipe(filter((res) => res.access === true))
)
).pipe(/* do subsequent operations here */);
https://www.learnrxjs.io/learn-rxjs/operators/combination/race
我想
obsPost$:Observable<any>=...
socket$:Observable<any>=
myObs$=merge(obsPost$.pipe(map((res:any)=>({id:'post',data:res}))
socket$.pipe(map((res:any)=>({id:'socket',data:res}))).pipe(
filter((res:any)=>{
const access:any=res.id=="post"? data.data.access.role:
data.access
return access==true || access=='ADMIN' || access=='ACTIVE')
}),
map(res=>res.data))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.