2016-12-31 69 views
1

在RxJS版本4中有hasObjects的方法似乎已被刪除,我正在嘗試遷移。此方法刪除未列在如何遷移頁面上。什麼替換Subject.prototype.hasObservers

hasObservers: function() { checkDisposed(this); return this.observers.length > 0; } 

什麼是另一種解決方案來獲得一個布爾值,如果一個主題有一個用戶之前下一個被稱爲?

回答

1

似乎沒有模擬在rxjs 5.這個功能但是你可以添加自己:

Subject.prototype.hasObservers = function hasObservers() { 
    if (this.closed) { 
     throw new ObjectUnsubscribedError(); 
    } 

    return this.observers.length > 0; 
}; 
0

如果你看看源代碼,你會如何observers array is defined看到,這是一個公共屬性,因此您可以直接訪問它:

import { Subject } from 'rxjs/Subject'; 

let s = new Subject(); 
s.subscribe(val => val); 
s.subscribe(val => val); 

console.log(s.observers.length > 0); 

這將打印true

+0

請注意,在主題上調用'unsubscribe'後,'observers'等於'null'。 –