var obsNumber = /* observable that produce numbers */;
var obsText1 = /* observable that produce text */;
var obsText2 = /* observable that produce text */;
var obsContext = /* IF obsNumber < 5 THEN obsText1 ELSE obsText2 */;
obsContext
является наблюдаемым, который будет возвращать либо данные из obsText1
или obsText2
, в зависимости от значение obsNumber
.
Пример 2:
var arrOfObservables = /* an array of observables */;
var obsNumber = /* observable that produce numbers */;
var obsSelect = /* arrOfObservables[obsNumber] */;
obsSelect
является наблюдаемым, который будет возвращать данные из выбранных наблюдаемых из arrOfObservables
массива определяется величиной создаваемого obsNumber
.
Я не могу понять, как указать это поведение с помощью RxJS. Мне кажется, мне нужно динамически подписываться/отписываться между несколькими наблюдаемыми.
Как сделать два примера работать с использованием RxJS?
Awesome. Благодарю. –
У меня создалось впечатление, что вы должны использовать _selectMany_ вместо _select_ здесь. Rx автоматически разворачивает Observables, которые вы возвращаете в функции, заданной _select_, или это функция _switchLatest_? – raimohanska
@raimohanska 3 "встроенные" функции для разворачивания внутреннего наблюдаемого являются 'switchLatest' (продолжает отменять подписку на предыдущий и подписываться на новый),' concatObservable' (очереди каждого наблюдаемого и подписывается на них в последовательности) и 'mergeObservable '(одновременно подписывается на них всех). 'selectMany' является просто кратким для' select (return a observable) .mergeObservable() ' – Brandon