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 ?

questionAnswers(3)

yourAnswerToTheQuestion