你不能
subscribe
在里面
test
. 我想你想创造一个可观察的物体
merge
那些-你必须分开归还。
return [subject, merge(subject, obs)]
然后
const [subject, obs] = test();
subject.next()
但我会提供主题作为参数。
import { ReplaySubject, Observable, interval, merge } from 'rxjs';
import { tap } from 'rxjs/operators'
function test(subject) {
return merge(
interval(1000).pipe(tap(i => console.log(i))),
subject
);
}
const subject = new ReplaySubject(1);
const obs = test(subject);
subject.next('TEST');
const subscription = obs.pipe(
tap(i => console.log('from outside ' + i))
).subscribe()
setTimeout(_ => subscription.unsubscribe(), 5000);