RxJs: pesquisa até o intervalo terminar ou corrigir dados recebidos
Como executo o seguinte cenário no navegador com RxJs:
enviar dados para a fila para processamentovoltar a identificação do trabalhosondar outro ponto de extremidade a cada 1s até que o resultado esteja disponível ou 60 segundos após (depois falhe)Solução intermediária que eu criei:
Rx.Observable
.fromPromise(submitJobToQueue(jobData))
.flatMap(jobQueueData =>
Rx.Observable
.interval(1000)
.delay(5000)
.map(_ => jobQueueData.jobId)
.take(55)
)
.flatMap(jobId => Rx.Observable.fromPromise(pollQueueForResult(jobId)))
.filter(result => result.completed)
.subscribe(
result => console.log('Result', result),
error => console.log('Error', error)
);
Existe uma maneira, sem variáveis intermediárias, de interromper o timer quando os dados chegarem ou ocorrerem erros? Agora eu poderia introduzir novos observáveis e depois usartakeUntil
ÉflatMap
uso aqui semanticamente correto? Talvez essa coisa toda deva ser reescrita e não acorrentadaflatMap
?