2017-05-15 68 views
3

我使用RXJS observerable與角4可觀察錯誤MESSAGE-無法趕上認購

import { Observable } from 'rxjs/Observable'; 
import 'rxjs/add/observable/from'; 

我的功能如下

public temp(){ 
     return Observable.create(observer => { 

      this.platform.ready().then(() => { 
       this.sqlite.create({ 
        name: 'offline.db', 
        location: 'default' 
       }).then((db: SQLiteObject) => { 
        db.executeSql("select * from TEMP_INSTANCE WHERE CRE_BY=? AND AUD_NUMBER=? ", [localStorage.getItem("user_name"), localStorage.getItem("audNo")])            auditNumber]).then(
         a => {  
          if (a && a.rows && a.rows.length > 0) { 
           this._util.logData('instance already downloaded.' + localStorage.getItem("audNo")); 
           return Observable.throw("Instance already downloaded for offline use"); 

           } else { 
             observer.next(true); 
             observer.complete(); 

           } 
         }); 

       }); 
      }); 
    } 

此功能在我的服務訂閱如下

this._dbService.temp().subscribe(a =>{ 
            if(a){ 
             alert('Yet to download'); 

            } 
           }, 
         error => { 
          alert('Error'+e); 
         }); 

出於某種原因,我無法得到錯誤。任何人都可以請建議hw拋出錯誤?請幫助。

回答

2

而不是return Observable.throw("...");你必須使用:

observer.error("Instance already downloaded for offline use"); 
+0

如果我刪除的回報也是其無法正常工作。我應該明確地抓住?還需要導入引發? – jslearner07

+0

了'return'不是問題 - 而不是'Observable.throw'你需要把'observer.error' – olsn

+0

感謝。這樣可行。 – jslearner07