import {Observable} from '@reactivex/rxjs'
// This is a fake API polling, this data is in reality coming from
// the server
const fakePoll$ = Observable.from([
{
status: 'initialized',
data: {...},
},
{
status: 'progress',
data: {...},
},
{
status: 'progress',
data: {...},
},
{
status: 'progress',
data: {...},
},
{
status: 'completed',
data: {...},
},
...
{
status: 'completed',
data: {...},
},
])
fakePoll$
.takeWhile(x => x.status != 'completed')
.subscribe(x => console.log(x))
這段代碼返回所有的進步和初始化狀態:Rxjs:民意調查數據,直到謂詞滿足
initialized
progress
progress
progress
但我需要拿到第一也完成像takeWhile但包容性。
我相信你必須在使用API時重複使用,假設它是一個回覆的承諾。我在plnkr.co/edit/6fBPFCus3HhZmCFBXFKq這樣做過。希望這可以幫助。 –
也請參考我的問題,我以3種不同的方式嘗試了這一點。請隨意發表評論。 https://stackoverflow.com/questions/44248530/server-polling-using-rxjs-till-condition-is-met –