The choosen answer does not work with rxjs6 any more. So here is another approach.
Although I prefer filtering for most cases as described in an another answer, using flatMap can sometimes be handy, especially when you are doing complex stuff, too complicated for a filter function:
import { Injectable } from '@angular/core';
import { Actions, Effect, ofType } from '@ngrx/effects';
import { flatMap } from 'rxjs/operators';
import { EMPTY, of } from 'rxjs';
@Injectable()
export class SomeEffects {
@Effect()
someEffect$ = this._actions$.pipe(
ofType(SomeActionTypes.Action),
flatMap((action) => {
if (action.payload.isNotFunny) {
return of(new CryInMySleepAction());
} else {
return EMPTY;
}
}),
);
constructor(
private _actions$: Actions,
) {
}
}