Предположим, у нас есть субъект, который может возвращать заданный набор значений, для каждого из которых может потребоваться другой подход к ним. Мы могли бы обсудить, должно ли это когда-либо быть, НО это не совсем предмет моего исследования.
Итак ... чтобы справиться с этим, наш код может выглядеть примерно так:
var sub = new Subject();
sub.subscribe(
data => {
if (caseA) {
// do something
}
if (caseB) {
// do something else
}
});
что все круто, здорово и все такое ... но мне было интересно, есть ли какой-нибудь оператор, который мы можем связать, чтобы сделать его более rx-ish? Мысль о фильтре, но объединение caseA и caseB просто заставит его не работать (очевидно), поскольку в конечном итоге он отфильтрует оба.
Итак, мой вопрос сводится к следующему: возможно ли иметь что-нибудь отдаленно напоминающее приведенный ниже псевдокод? Какие операторы, которых вы знаете, будут работать таким образом?
var sub = new Subject();
sub.pipe(
magicOperator(//handles caseA),
magicOperator(//handles caseB),
)
subscribe(
data => {
// handles common thread
});
source.pipe(partition(val => val % 2 === 0)).forEach(part => part.subscribe()
- person Roberto Zvjerković   schedule 06.02.2020