typescript - 如果超过一个,Angular2 Rxjs 观察者不会被设置
我正在尝试从构造函数中设置多个观察者。只有一个被设置,其他的都没有被设置,为 null(未改变)。
我不确定它为什么会这样。
export class gq {
/**
* This is observable data service https://coryrylan.com/blog/angular-2-observable-data-services
*/
constructor(private api: Api)
{
this._ = {
// just to define object here, else it will give error
observer: {
s: '', q: '', translation: '', translationLanguage: '', transliteration: '', r: '', content: ''
},
// observables
observable: {
s$: new Observable(observer => this._.observer.s = observer).share(),
q$: new Observable(observer => this._.observer.q = observer).share(),
translation$: new Observable(observer => this._.observer.translation = observer).share(),
translationLanguage$: new Observable(observer => this._.observer.translationLanguage = observer).share(),
transliteration$: new Observable(observer => this._.observer.transliteration = observer).share(),
r$: new Observable(observer => this._.observer.r = observer).share(),
content$: new Observable(observer => this._.observer.content = observer).share(),
}
};
console.log(this._.observer);
console.log('triggered constructor');
}
}
输出为
Object {s: Subject, q: "", translation: "", translationLanguage: "", transliteration: ""…}
如你所见,它只用 Subject 设置了 s,但其他的都是 null
答案#1
我不知道你应用程序代码的其他部分,但你需要注意,observables 是惰性的。这意味着,当你调用 Observable 构造函数时指定的回调只有在你订阅它时才会被调用。
也许你只订阅了第一个可观察对象,而没有订阅其他的...