Я видел некоторые из SO-ответов, а также этот средний пост, но они все еще не решают мою текущую проблему.
Сценарий:
- Добавить товар.
- В случае успеха получите список всех продуктов.
В каждом из этих двух случаев могут быть ошибки:
- Бизнес-ошибки, содержащие сообщения об ошибках, специфичных для бизнеса
- Сетевые ошибки, общие вещи, такие как 40x коды ошибок и т. Д.
В настоящее время у меня есть эффект, который будет использовать службу для добавления продукта и отправлять действие, основанное на успешном завершении операции. Это обновит магазин с текущим продуктом, установленным на добавленный продукт.
@Effect()
addProduct$: Observable<Action> = this.actions$.pipe(
ofType(AddProductAction),
map((action: AddProductAction) => action.payload),
switchMap((ProductToAdd: Product) =>
this.productService.addProduct(ProductToAdd).pipe(
map(response => {
if (this.responseContainsBusinessError(response)) {
return new AddProductBusinessError(response);
} else { // no business error
return new AddProductSuccess(response);
}
}),
catchError(err => of(new AddProductFail(err))) // network/http error etc
)
)
);
Может кто-нибудь показать, как изменить этот код, чтобы я мог добавить второй эффект / вызов API, чтобы получить список продуктов с сервера?