У меня есть довольно простой эффект, определенный с помощью библиотеки ngrx / effects.
@Effect()
public Authorize$ = this._actions$.ofType(IdentityActionsService.AUTHORIZE_IDENTITY)
.switchMap(action => this._svc.Authorize$(action.payload))
.catch(err => Observable.of(null).do(() => console.error(err); }))
.map(identity => this._identity.OnIdentityAuthorized(identity))
Запускается @Effect, запускается authorize $ () и запускается метод OnIdentityAuthorized (), который возвращает Action ({type: payload:}) ...
Я ожидаю, что действие, возвращаемое OnIdentityAuthorized (), будет передано в соответствующий редуктор - этого не происходит.
У меня есть вызов отладчика в OnIdentityAuthorized и в соответствующем редукторе. Действие, возвращаемое OnIdentityAuthorized, не отправляется. Что могло вызвать это? Я что-то не понимаю?
Я чувствую, что то, что у меня есть, в основном идентично примеру 1 здесь: https://github.com/ngrx/effects/blob/master/docs/intro.md
РЕДАКТИРОВАТЬ Добавлены дополнительные разделы кода ... Эффект запускает оператор отладчика OnIdentityAuthorized, поэтому наблюдаемый объект испускается на протяжении всего вызова асинхронной авторизации. Корпус редуктора не срабатывает ...
Вот реализация OnIdentityAuthorized ():
public static ON_IDENTITY_AUTHORIZED = '[IDENTITY] Authorized';
public OnIdentityAuthorized(identity: Identity | JWT): Action {
debugger;
return {
type: IdentityActionsService.ON_IDENTITY_AUTHORIZED,
payload: identity
};
}
Вот секция редуктора:
switch (action.type) {
case IdentityActionsService.ON_IDENTITY_AUTHORIZED:
debugger;
return merge({}, action.payload);