ブローコードは、私はHTTP要求を作成し、本がストアにすでにあるかどうかを確認するgoogleBooks
サービスを呼び出していることを理解しngrx/example でbookexistルートガードからで起動します。私が理解できない部分は、ガードサービスのどこにでもsubscribe
を呼んでいないということです。私の理解は、Anuglar2のhttp ObservablesはCold Observableとみなされ、誰かがそれを購読するまで呼び出されないということです。Rxjsは、どのように冷たい観測
質問:下記のgoogleBooksサービスがどのように呼び出されていますか?
hasBookInApi(id: string): Observable<boolean> {
return this.googleBooks.retrieveBook(id)
.map(bookEntity => new book.LoadAction(bookEntity))
.do((action: book.LoadAction) => this.store.dispatch(action))
.map(book => !!book)
.catch(() => {
this.router.navigate(['/404']);
return of(false);
});
}