2016-07-04 65 views
2

我遇到問題。我有一個實例化具有布爾屬性的客戶端。我想等到它切換爲真,然後解決承諾。我嘗試了很多不同的方法,包括while循環,只是完全阻止線程而不檢查更新。RxJs如何觀察對象屬性更改

下面是一個嘗試

var startClient = function() { return new Promise((resolve, reject)=> { 
      var client = CreateClient(); 
      while(!client.ready) {} 
      resolve(client); 
    }); 
}; 

我的問題是:有沒有辦法使用RxJs幫助..也許發射和事件,如果準備屬性更改的方法嗎?下面是我試圖做的更僞代碼。

var startClient = function() { return new Promise((resolve, reject)=> { 
      var client = CreateClient(); 
      var emitter = Observable.watch(client, 'ready'); 
      emitter.on('ready', function(result) { 
       if(result) resolve(client); 
      }); 
}; 

有什麼建議嗎?謝謝!

回答

2

如果可以的話,你可能會覆蓋客戶端陷阱分配給它的ready屬性,如下所示:

​​3210

如果屬性是不可配置的,或者對象是凍結這將無法正常工作等

+0

謝謝你,這個工作出色,讓我擺脫了模塊依賴。 – Proximo