Я пытаюсь вернуть наблюдаемое из функции, которая внутренне использует Rx.Subject. Конечно, как и в случае с любым хорошим API, детали реализации должны быть полностью абстрагированы от потребителя. Однако с помощью Subject.asObservable () любой потребитель может выдавать новые значения всем наблюдателям.
Пример:
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"
Итак, мой вопрос: существует ли встроенный способ предоставить потребителям доступ к Observable без предоставления им доступа к исходной теме? Если нет, то это явно плохой дизайн со стороны RxJs.
ПРИМЕЧАНИЕ: это для RxJS v5.