Rx: um operador zip que continua depois que um dos fluxos termina?
Estou procurando combinar fluxos (observáveis) que iniciam e terminam de forma assíncrona:
-1----1----1----1---|->
-2----2--|->
[ optional_zip(sum) ]
-1----3----3----1---|->
Para o que eu preciso: Adicionando fluxos de áudio juntos. Eles são fluxos de "pedaços" de áudio, mas eu vou representá-los com números inteiros aqui. Portanto, há o primeiro clipe sendo reproduzido:
-1----1----1----1---|->
e então um segundo começa, um pouco mais tarde:
-2----2--|->
O resultado de combiná-los por soma deve ser:
-1----3----3----1---|->
Mas o zip padrão é concluído se algum dos fluxos compactados terminar. Eu quero que esse opcional_zip continue, mesmo que um dos fluxos termine. Existe alguma maneira de fazer isso no Rx, ou eu tenho que implementá-lo modificando o Zip existente?
note: Estou usando o RxPy, mas a comunidade aqui parece pequena e os operadores do Rx parecem bastante universais entre os idiomas, então eu o marquei como rx-java e rx-js também.