2017-04-20 13 views
1

タイトルで述べたように、私が観察可能なものを購読するときに何も起こっていません。コンソールまたはビルド中にエラーはありません。ここに私のコードは次のとおりです。角2 Httpがトリガーにならない

マイサービス

getBlueCollars(): Observable<BlueCollar[]> { 
return this.http.get(this.defaultAPIURL + 'bluecollar?limit=25').map(
    (res: Response) => { 
    return res.json(); 
    }); 
} 

マイコンポーネント

ngOnInit() { 
    this.planifRequestService.getBlueCollars().subscribe(
     data => { 
     this.blueCollars = data; 
     console.log('Inner Blue Collars', this.blueCollars); 
     }, 
     err => console.log(err) 
    ); 
    console.log('Value BlueCollars : ', this.blueCollars); 
} 

だから、第二にconsole.logは "バリューBlueCollars:未定義" でトリガされ、ログ私の購読では決して示されていません。同様に、Chromeの[Networt]タブで送信されたリクエストは表示されません。

だから私は、次のコードですべて簡素化しようとした:

let response: any; 
this.http.get('myUrl').subscribe(data => response = data); 
console.log('TestRep: ', response); 

同じ問題ここに、エラーが、応答は未定義ではありません。それは、サブスクライブが観測可能なものを引き起こしていないようです。 (URLは、それが私の闊歩上または郵便配達と協力して、正しいです。)

私は、だから私はのコード過去/コピーしようとした角度2.4.9

編集よ新しいプロジェクトの私の要求は、すべて正常に動作しています。リクエストがトリガーされ、JSON応答を正しく取得できます。だから私のプロジェクトの設定に、正しくトリガするリクエストを禁止している何かがあります。サブスクライブ/ HTTP呼び出しは非同期のでが起こっているので、サブスクライブコール外console.logが定義されていない

+1

AngularアプリのURLは何ですか?あなたが呼び出しているバックエンドのURLは何ですか?彼らは同じホストとポートを持っているかどうか? –

+0

コンポーネントコードの残りの部分を見ることができますか?またはplunkr? – danimal

+0

サブスクリプションの構文は正しい限り私は見ることができます - サブスクリプションは引数として1つ2つまたは3つの機能を取ることができ、OPには2つあります。 – danimal

答えて

2

これで何が起こっているのかがわかりました。私は指定されたURLだけを捕まえるはずのログイン接続を試すために偽のバックエンドを使用しています。しかし、それはすべての要求をキャッチしていたので、すべてを説明しています。みんなあなたの助けを差し上げます。

+0

私は今も問題を抱えている – afeef

0

理由は、実際には、順序(!時間内)のコードが実行されては、次のとおりです。

1 )2)外部コンソールのログは、青色の数字で定義されていない で実行されます。3)応答(またはエラー)がHTTP要求から(数秒後に)戻ってきたとき、その時だけ、観察可能なものが購読されています(そして、応答を待ちます。) this.blueCollar = dataの内部割り当てが行われます(内部コンソールログ)。またはエラーが記録されます。

それ以外は、購読コードは正常に見えます...!あなたのサービスコードにcatchブロックを追加すること

+0

さて、私は理解していますが、少なくともクロムネットワークタブで要求を見ることができます。同様に、コンソール内に「インナーブルーカラー」が表示されるはずですが、そうではありません。 –

+0

申し訳ありませんが、本当の問題は、明らかにサブスクライブコールバックには必要なログが表示されないことです。非同期部分は正しいですが、主な問題点は説明していません。 – Sebas

+0

ええ、私は知っていますが、あなたが設定したように、購読のコールバックに問題は見られません – danimal

1

試してみてください。

getBlueCollars(): Observable<BlueCollar[]> { 
    return this.http.get(this.defaultAPIURL + 'bluecollar?limit=25') 
    .map(
    (res: Response) => { 
     return res.json(); 
    }) 
    .catch(err => Observable.throw(err)) 
} 

私はこれがあなたのあなたのアイデアを与えるだろうとエラーになります想像

import 'rxjs/add/observable/throw'; 
import 'rxjs/add/operator/catch';` 

に忘れてはいけませんコードが間違っています。

+0

あなたの返事のためのThx。私は良い輸入品でキャッチを追加しようとしましたが、何も起こっていません。エラーは表示されません。 –

関連する問題