Вы пытаетесь работать с async
действиями в ngrx
. Async
действия обрабатываются с помощью effects
. Я обновил ветку вашего рабочего демо и внес некоторые изменения, используя эффекты. Я создал эффект как app-effect.ts
в вашем образце. Обратите внимание на некоторые изменения, сделанные мной в app.component.ts
, app.module.ts
, app-reducer.ts
, app-action.ts
@Injectable()
export class AppEffects {
constructor(
private actions$: Actions,
public nodeSvc: DemoService
) {}
@Effect()
viewNodes$ = this.actions$
.pipe(
ofType(DemoActions.requestNodeAction),
mergeMap((data) => {
return this.nodeSvc.getObjectCallChain(data.payload)
.pipe(
map(data => ({ type: DemoActions.receivedNodeAction, payload: data })),
catchError(() => EMPTY)
)
})
)
}
Вы можете найти обновленный пример здесь
https://stackblitz.com/edit/angular-gni7vu
Также, вы можете детально изучить ngrx effects
здесь
https://ngrx.io/guide/effects