两个主题之间的沟通

时间:2017-09-05 10:33:30

标签: angular typescript rxjs

我有一个可变线程:

threads: Subject<{[key: string]: Thread }> = new BehaviorSubject({});

我想将这个threads变量添加到我的新threadTest变量中:

threadTest : Subject<Array<Thread>> = new Subject();

是否可能,如:

this.threadTest = this.threads;

感谢您的帮助......

1 个答案:

答案 0 :(得分:1)

要将BehaviorSubject中的值复制到另一个Subject,您需要使用它 this.threadTest.next(this.threads.getValue());(作为例子)

但是在这种情况下,如果您只使用此代码,则会遇到{[key:string]:Thread}类型与Thread[]不匹配的问题来解决此问题,您需要将其转换为此类数组:this.threadTest.next((<any>Object).values(this.threads.getVa‌​‌​lue()));