Я получаю следующую ошибку типа, когда пытаюсь отправить наблюдаемое действие в моем эффекте, как показано ниже:
@Effect()
rideSummary$: Observable<Action> = this.actions$.pipe(
ofType<GetRideSummary>(RideActionTypes.GetRideSummary),
map(action => action.payload),
switchMap(payload => {
const { ride, passenger } = payload;
const allPassengers = [...ride.passengers, passenger];
this.store.dispatch(new SetLoading);
return this.directionService.computeRideRouteSummary(ride, allPassengers)
.then((summary: RideRouteSummary) => {
const updatedRoute = Geometry.newFromData({
type: Geometry.LINE_STRING,
coordinates: summary.route
});
const totalTime = summary.totalTime;
const arrivalTime = ride.type === Ride.TYPE_TOWORK ?
ride.hour :
ride.hour + summary.totalTime;
const departureTime = ride.type === Ride.TYPE_TOWORK ?
ride.hour - summary.totalTime :
ride.hour;
this.store.dispatch(new UnsetLoading);
return this.store.dispatch(new GetRideSummarySuccess({
updatedRoute,
totalTime,
arrivalTime,
departureTime
}));
}
).catch(error => {
this.store.dispatch(new UnsetLoading);
catchError(() => of(new HandleError(error)));
});
})
);
Ошибка типа говорит:
Unable to assign an argument of type "(payload: {ride: Ride; passenger: Passenger;}) => void" to the type parameter "(value: {ride: Ride; passenger: Passenger;}, index: number) => ObservableInput <Action> ".
The type 'void' can not be assigned to the type 'ObservableInput <Action>'.
Я не уверен, в чем проблема с кодом.Кажется, что-то связано с promise
.Любая помощь?