Я пытаюсь вернуть наблюдаемое из функции, которая использует Rx.Subject внутри. Конечно, как и с любым хорошим API, детали реализации должны быть полностью абстрагированы от потребителя. Однако, используя Subject.asObservable(), любой потребитель может выдать новые значения всем наблюдателям.Как создать Observable из темы, не подвергая субъекта потребителям в RxJs v5
Пример:
const subject = new Rx.Subject();
const observable = subject.asObservable();
observable.source === subject; // true
observable.forEach(value => console.log(value));
observable.source.next('Hello');
// Causes the forEach above to print "Hello"
Так что мой вопрос, есть ли встроенный образом, чтобы выставить наблюдаемые потребитель без предоставления им доступ к исходному вопросу? Если это явно плохой дизайн на части RxJs.
ПРИМЕЧАНИЕ: Это для RxJS v5
Цените ответ! К сожалению, я не работаю в среде TypScript. Есть ли действительный, небедово используемый случай для доступа к источнику от потребителя наблюдаемого? Это должно быть явным выбором. Полностью можно инкапсулировать состояние в JS, поэтому я не покупаю, что источник должен быть выставлен, или, по крайней мере, механизм по умолчанию для просмотра наблюдаемых для потребителей должен его выставить. –
Это абсолютно правильно, что в JS есть допустимые способы сделать это - я бы поставил наилучшее решение открыть проблему github. Из того, что я знаю, это то, что rxjs5 был построен с TS в виду, но это очень быстро угасает, для чего это не так. – olsn