2017-10-19 16 views
1

サービスデータを非同期パイプ経由でngforにロードしようとしていますが、問題に直面しています:このコンポーネントのアプリでInvalidPipeArgument: '[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]

<app-book-list *ngFor="let app of apps | async | serachBox:searchBooksByName | filterSearch:showTechBooks:showMgmBooks:showFictionBooks " 
    [bookdetails]="app"></app-book-list> 

サービスから来ることになっている: これは私のコンポーネントです。マイcomponent.tsファイルで

getBookDetails(){

let promise = new Promise((resolve,reject)=>{ 
    return this.http.get('https://lib-http-ng.firebaseio.com/bookdetails.json') 
     .toPromise() 
     .then((res)=>{ 
      const data = Object.values(res.json()); 
      resolve(data[0]) 
     }) 

}) 
return promise; 

} 私は非同期パイプに関連したエラーを取得しています:

 public apps= []; 
    ngOnInit() { 
    this.ServerService.getBookDetails() 
     .then((data)=>{ 
     this.apps = data; 
     }) 
    } 

以下は約束です。

1.

Type '{}' is not assignable to type 'Promise<any>'. 
+0

あなたのコードは、いくつかのパイプを使用して削除する必要があります。どのパイプがエラーの原因ですか?どのような値でエラーが発生しますか? –

+0

@GünterZöchbauerそれは '|非同期ではないでしょうか? "パイプ 'AsyncPipe'" – Pac0

+0

あなたは正しいです。他のパイプを削除しても、同じエラーが発生します。これは、https://stackoverflow.com/help/mcveにつながります。これは、通常、SOの質問でコードを実行することをお勧めします。 –

答えて

0
this.ServerService.getBookDetails() 
    .then((data)=>{ 
    console.log(data); 
    this.apps = data; 
    }) 

this.apps = this.ServerService.getBookDetails() 

または| async

+0

asyncを削除すると、データを表示するためにページをリロードする必要があります。データが非同期で送信されています。 –

+0

この場合、おそらく 'this.ServerService.getBookDetails()'に何か問題があります。第二の選択肢はどうですか? –

+0

2番目のオプションは機能しません。同じ振る舞いを強制する。 –

関連する問題