TL; DR:Angular2:可觀察訂閱VS單身會員
https://plnkr.co/edit/QP5skRU1MJ3ZoOtlA15I?p=preview
爲什麼要使用一個服務的本地變量在訂閱可觀察到該服務中?爲什麼它的混亂
例子:
在普拉克,你會看到我有兩個組件和服務。這兩個組件共享一個位於該服務中的Observable。
在服務中,我更新一個公共變量並將該值推送給觀察者。
這段代碼對我來說似乎多餘,但我在Angular2教程中看到了這一切。
的src/number.ts
this.num = {
num: new Date().getTime()
};
this.observer.next(this.num);
爲什麼我會做一個或其他?我更喜歡訂閱方式,但他們似乎做同樣的事情。我錯過了什麼?
注意: setInterval和NgZone垃圾僅用於演示目的。在現實生活中,這些數據來自HTTP,它會更新變量和/或推送給訂閱者。因爲我每秒都抓住時間,所以我也不得不使用NgZone。
啊!我現在看到了差異!通過使用'this.prop = 123'的視圖,您無法在更改值時進行更新。通過可觀察的,您可以控制何時更新,不是通過'next()'直到您準備好,或者通過檢查訂閱回調中的this.prop = 123'之前的值。 – oooyaya
是的,那將是另一個用例。 –