CanActivate
classは返品の種類がObservable<boolean>
です。私には意味をなさないAngular 2のCanActivateがPromiseの代わりにObservable <boolean>を返すのはなぜですか?
のみ使用事例は以下のとおりです。
CanActivate
は「非同期」observer.next(true|false)
が呼び出されるまで表示されているルートをブロックすることができます。CanActivate
が許可するルートを表示してからobserver.next(false)
を私のアプリケーションの別の部分からプッシュし、そのルートを消すことができます。
ただし、ポイント1は動作しますがポイント2は動作しません。したがって、CanActivate
が便宜以外の返品タイプObservable<boolean>
を許可する理由が見つからないため、APIが複雑になります。 CanActivate
は返品のタイプがboolean
、Promise
の場合にのみクリーナーになります。
Angular、RxJS、およびすべてのノードに基づいていますので、わかりやすさが不足している可能性があります。 Observer<boolean>
の戻り値の型が意味する、CanActivate
から機能を抽出しようとしばらく時間を費やしました。
「約束」を使用せず、Observablesで置き換えることを決定しました。完了する前にただ一つの値を返すObservableを持つことができます。すべてのhttp呼び出しは現在インスタンスのために約束されています。 –
v3ルータのベースとなったルータを構築した開発者に質問してみませんか? [問題を作成する](https://github.com/ngrx/router/issues)、質問をすると、回答が得られる可能性があります。 – cartant
OKです。それが愚かな質問だったかどうかは分かりませんでした。 – Dan