2017-02-11 8 views
8

私はそのコードタイプ「ブール」「は観察可能<boolean>」を入力する割り当てられない

method(): Observable<boolean> { 
    return this._http.get('sessionId=' + sessionId).map(res=> { 
     if (res.status === "success") { 
     return true; 
     } 
     return false; 
    }); 
} 

を持っている。しかしsessionIdがあるとき、「」それは

例外とコンソールログ401エラーをスローした場合、私は追加

method(): Observable<boolean> { 
    if (sessionId === '') 
     return false; 
    return this._http.get('sessionId=' + sessionId).map(res=> { 
     if (res.status === "success") { 
     return true; 
     } 
     return false; 
    }); 
    } 

しかし、今、私はエラーを取得しています:

そのメソッドの内部

どうすれば解決できますか?

私はObservable<boolean> | booleanを追加する場合、私はこれは、あなたが

method(): Observable<boolean> { 
    if (sessionId === '') 
     return Observable.of(false); 
    } 
    return this._http.get('sessionId=' + sessionId).map(res=> { 
     if (res.status === "success") { 
     return true; 
     } 
     return false; 
    }); 
    } 
+1

可能性のある重複した[タイプ「<{}>観察可能」「は観察可能を入力する割り当て可能ではありません| boolean '](http://stackoverflow.com/questions/38299484/type-observable-is-not-assignable-to-type-observableboolean-boolean) –

答えて

14
method(): Observable<boolean> { 
    if (sessionId === '') 
     return false; // <<< obviously not an observable 

というエラーが方法を確認してください取得しています:

import 'rxjs/add/observable/of'; 
Observable.of(); 

あなたはObservablesをから作成できますフィールドと、このようなもので、あなたの問題を解決:

method(): Observable<boolean> { 
    if (sessionId === '') 
     return Observable.of(false); // Now we got an Observable instance 
    return this._http.get('sessionId=' + sessionId).map(res=> { 
     if (res.status === "success") { 
     return true; 
     } 
     return false; 
    }); 
    } 

ドキュメント:のhttp://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-of

+0

あなたは私のヒーローです:) P.S.の[]を取り除いてください。 – gsiradze

+0

ヒント - ありがとうございました。 –

+1

ありがとうございます@GünterZöchbauer –

0

たい何をすべき

Property 'map' does not exist on type 'boolean | Observable'.

関連する問題