1
私は立ち往生しており、正しい方向に向けるためにいくつかのアドバイスを利用することができました。私は配列(コンテキストのために:チャートの配列)であり、配列の各項目は独自の状態を持っているストアを持っています。各項目はAPIをapi呼び出しにする責任がありますが、新しいエフェクトが起動されてapi呼び出しを行うと、以前のAPIコールをキャンセルし、以前のストリームをすべてキャンセルすることができます。どんな助けでも大歓迎です。ngrx effects - ストリームが完了する前に前のストリームをキャンセルしています
効果は、最終的な結果は、私の店は、次のようになります。この
@Effect() addCharts$ = this.actions$ .ofType(LOAD_CHART) .switchMap((action) => { return this.chartApi.getChart(action.payload.url).map((res) => { res.id = action.payload.id; res.url = action.payload.url; return res; }); }) .map((result: any) => { debugger; return { type: LOAD_CHART_SUCCESS, payload: result } }) .catch((error: any) => { debugger; return Observable.of({ type: LOAD_CHART_FAILURE, payload: error.detail }); });
のように見えます。
[
{
id: 1,
data: null,
loading: true,
loaded: false
},
{
id: 2,
data: {
...
}
loading: false,
loaded: true
}
]
など、任意の現在の
chartApi.getChart
からスクライブ解除ありがとう!!!それはうまくいった! – MarkFromFullerton