Padrão para Observáveis que inclui reconhecimento

Estou trabalhando em algo que está gravando dados provenientes de uma fila. Foi fácil o suficiente para processar a fila em um Observable para que eu possa ter vários pontos de extremidade no meu código recebendo as informações na fila.

Além disso, posso ter certeza de que as informações chegam em ordem. Essa parte funciona muito bem, já que os Observables garantem isso.Mas, uma parte complicada é que eu não quero que o Observer seja notificado da próxima coisa até que tenha concluído o processamento da coisa anterior. Mas o processamento feito pelo Observer é assíncrono.

Como um exemplo mais concreto, provavelmente é simples o suficiente para seguir. Imagine que minha fila contém URLs. Estou expondo esses como um Observável no meu código. Eu assino um Observer, cujo trabalho é buscar os URLs e gravar o conteúdo no disco (este é um exemplo artificial, portanto, não tenha problemas com essas especificidades). O ponto importante é que buscar e salvar é assíncrono. Meu problema é que não quero que o observador receba o URL "próximo" do Observable até que eles concluam o processamento anterior.

Mas a ligação paranext na interface Observer retornavoid. Portanto, não há como o Observer se comunicar comigo que realmente concluiu a tarefa assíncrona.

Alguma sugestão? Eu suspeito que provavelmente haja algum tipo de operador que possa ser codificado que basicamente reterá valores futuros (enfileirá-los na memória?) Até que de alguma forma soubesse que o Observador estava pronto para isso. Mas eu esperava que algo assim já existisse seguindo algum padrão estabelecido.

questionAnswers(3)

yourAnswerToTheQuestion