angular2 アプリケーションで @ngrx/effects を使用しており、さまざまなエフェクト定義の構成に苦労しています。
エンティティ と が必要Identity
でSubscription
、それぞれ独自のアクション サービスIdentityActions
とSubscriptionActions
効果サービスIdentityEffects
がありSubscriptionEffects
ます。
以下のアクションが定義されています。
IdentityActions.AuthorizeIdentity()
IdentityActions.OnIdentityAuthorized(identity)
SubscriptionActions.GetSubscriptionList(identity)
SubscriptionACtions.OnSubscriptionsListed(subscriptions)
ID が承認されたら、すぐにそのサブスクリプションのリストを取得したいと考えています。これらの効果の組織化をどのように@ngrx/effects
提唱して、後で追跡可能/見つけやすくするか (たとえば、今から 1 年後)?
IdentityEffects では:
@Effect()
this._actions.ofType(authActions.AUTHORIZE_IDENTITY))
.switchMap(() => this.svc.AsyncAuth())
.switchMap((identity) => authActions.OnIdentityAuthorized(identity))
@Effect()
this._actions.ofType(authActions.ON_IDENTITY_AUTHORIZED)
.switchMap((identity) => Observable.of(action, subActions.GetSubscriptionList(identty))
サブスクリプション リストを取得することは、承認された ID の結果であるため、これを書くときは当然のように思えます...しかし、開発者がサブスクリプション リストがどこから取得されているかを追跡しようとしている場合、それはそうではないため、私は心配しています。 IdentityService を掘り下げるのは直感的です。
別の方法は、発行しない CustomerEffects に 2 番目の効果を登録することです。
@Effect({emit: false})
this._actoions.ofType(authActions.ON_IDENTITY_AUTHORIZED)
.switchMap((identity) => Observable.of(action, subActions.GetSubscriptionList(identity))
これは長期的には見つけやすいように思えます...しかし、それを書くときはあまり自然に感じません(サブスクリプションサービスでアイデンティティの副作用を書いています...)
実績のあるアプローチは何ですか (十分な時間があれば)?