Je me demande si des méthodes peuvent convertir un flux en un autre. J'ai déjà deux flux numéro $ et couleur $, ils sortent des nombres et des couleurs comme [1, 1, 1, ...] et ['rouge', 'rouge', 'rouge', ...]. Je veux obtenir des sorties comme [1, 1, 1, 'rouge', 'rouge', 'rouge', 'rouge', 'rouge', 'rouge', 1, 1, 1, ... ], ce flux de sortie sautera aléatoirement le nombre $ en couleur $ ou inversement. Je suis un novice à RxJS et n'a pas trouvé une méthode appropriée pour résoudre mon problème. Donc j'ai supposé une méthode jumpWhen(condition, streamJumpTo)
, une fois que la condition est vraie, le flux de traitement sera déprécié et il sera converti en un nouveau flux et commencer à travailler. La question est, comment puis-je simuler cette procédure en utilisant Rx.js v5? Remarque: $ number et $ color peuvent avoir des opérateurs totalement différents (pas un simple mapTo
), donc je ne pense pas que nous devrions essayer de fusionner les deux flux ensemble.Comment émettre de façon conditionnelle deux flux observables?
description ce flux:
Dans un premier temps, les sorties de flux 1
par 300ms, il y a 10% de chances de (Math.random()> 0,9) Numéro de commutation $ à la couleur de $. Si la commutation se produit, le flux s'arrête de sortir 1
, il commence à émettre red
par 500ms. Le mai de la production globale semble:
1 - - 1 - - 'red' - - - - 'red' - - - - 'red' - - - - 1 - - 1 - ...
cond f f t f f t f
time 300 600 900 1400 1900 2400 2700
rand 0.5 0.2 0.95 0.99 0.4 0.08 0.1
Qu'arrive-t au courant si le nombre aléatoire est entre '0.3' et '0.9'? quelle devrait être la sortie? – CozyAzure
@CozyAzure Lorsque le flux actuel est le nombre $, nous obtenons un rand par 300ms, si le rand est entre 0 et 0,9 flux de sortie 1, sinon passer à la couleur $ et immédiatement sortie 'rouge'.Après la commutation, la phase est $ couleur, nous obtenons un rand par 500ms, si le rand est entre 0.3 et 1, flux de sortie 'rouge', sinon passer au numéro $ et immédiatement sortie 1. Au nombre $ phase, nous avons 10% Chance de passer à la couleur $, et en couleur $ phase, nous avons 30% de chance de passer au nombre $. – Zheeeng