J'ai un objet observable et je veux émettre un élément par défaut après un certain temps (un timeout) tout en gardant le flux ouvert pour émettre de nouvelles valeurs A l'avenir. Comment puis-je faire ceci? J'ai essayé de le faire en faisant une fusion du flux original avec un autre flux qui déborde le flux original tout en mappant la valeur débalinée à la valeur par défaut que je veux.Programmation réactive: Emettre un élément spécifié quand un flux est inactif pendant un certain temps
pseudocode:
defaultDebounced = originalStream.debounce(time).map({x -> myDefaultValue})
myStream = rx.merge(originalStream, defaultDebounced)
bien que je ne sais pas si je courrais dans certains cas, à la frontière comme le suivant, dans lequel le courant d'origine émet un élément comme les déclencheurs de délai et par hasard, la valeur par défaut est émis après.
original: ----A----B----------------------C------------
debounced: -----------------------<timeout>X------------
merged: --------------------------------CX-----------
En outre, il y a l'inconvénient que le premier observable doit émettre au moins un élément de commande pour antirebond pour émettre la valeur par défaut.
Note: Je voudrais connaître la bonne façon de le faire, peu importe l'implémentation, mais au cas où je travaillerais sur RxSwift.