I'm encountering a type error when I attempt to dispatch an observable of actions within my effect. The error message I'm receiving is as follows:
@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)));
});
})
);
The error message states:
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' cannot be assigned to the type 'ObservableInput <Action>'.
I'm unsure about what exactly is causing the issue in the code. It appears to be related to the promise
. Any assistance would be greatly appreciated.