2016-10-26 19 views
2

私は角度2のチュートリアルに従い、ヒーローのリストを非同期的にレンダリングする検索機能を持っています。私が観察英雄を持っている部品でAngular2/Typescriptで観測可能な値をデバッグする方法は?

<div *ngFor="let hero of heroes | async"> 
    {{hero.name}} 
</div> 

heroes: Observable<Hero[]>; 

今、私は何も表示されないと、私はどちらかのいずれかのエラーが表示されないことにより、自分のアプリケーションで同様の機能を実装しています。私はChromeでデバッガを開き、ヒーローの価値をチェックしようとしましたが、それはObservableのラッパーです。

デバッガの現在値または最終値または一部の値を表示する方法はありますか、またはそのような問題をデバッグするための他の方法がありますか?すべての

+1

RxJSのデバッグを支援するいくつかのツールが構築されることを望みます。それまでは、これは便利だと思うかもしれません:http://staltz.com/how-to-debug-rxjs-code.htmlそして多分この答え:http://stackoverflow.com/a/38597548/6680611 – cartant

答えて

6

いくつかの記事がありますこのトピックでは最も簡単にdo()演算子を使用して、演算子チェーンで何が起こっているかを確認できます。

続きを読む:

+0

私は正しく理解しているので、その目的のためにデバッガを使用する方法はありません? –

+1

@IlyaChernomordikもちろん、デバッガを使うことができます。問題は非常に多くのネストされた呼び出しと非常に多くの匿名のオブザーバブルと機能があり、内部で何が起こっているのかを把握するのが非常に難しいため、あまり役に立ちません。これについては、https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/testing.md#long-stack-traces-supportにも記載されています。 – martin

1

まず、あなたはtypescriptですを使用している場合は検討してください。あなたはそれを印刷したい場合は

heroes: Observable<Array<Hero>>; 

、あなたは、単にあなたのコードに追加することができます。

heroes.subscribe((v) => console.log('got new heroes list: ', v)); 
+0

コンソールロギング、デバッグオプションなしP.S.なぜアレイがヒーロー[]より優れていますか?これはAngular2チュー​​トリアルから直接です。 –

+0

痛みはありません:-)でもstalzはデバッグの難しさに関係しています。 配列については、型付きのアプローチで読みやすく、一貫しています。配列>、アイテム[] []を想像してみてください。 (項目[])[]?それは乱雑になる。 – Meir

1

あなたは行う()演算子EX使用することができます。何が行う内部で起こらない場合(

this.http 
     .get('someUrl', options) 
     .map(res => res.json()) 
     .do(
      data => { 
       console.log(data); 
      }, 
      error => { 
       console.log(error) 
      } 
     ) 

を)それはあなたがその観測可能に加入していない、ということを覚えている意味機能観察可能なものがサブスクリプションの開始を待っている。

関連する問題