2016-02-15 42 views
2

我想從我的構造函數中設置多個觀察者。只有一個被設置,其餘的不會變爲null(不變)。Angular2 Rxjs觀察員不設置如果多於一個

我不知道爲什麼它這樣做。

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: ""…} 

正如你可以看到它是隻設置s與主題,但其中其餘的都是null

回答

2

我不知道您的應用程序代碼的其餘部分但是你需要意識到觀察者是懶惰的。這意味着調用Observable構造函數時指定的回調僅在您訂閱它時調用。

也許你只認購第一個可觀察的而不是其他的......