Как вернуть два Action из эффекта ngrx

Изучаю ngrx и rxjs. Сами по себе библиотеки очень мощные, но понять, где кроется проблема, подчас бывает очень сложно. То ли это тяжёлое наследие JavaScript и его идейного наследника TypeScript, языков с нечёткой типизацией, то ли их плохая поддержка в средах разработки, то ли я ещё не очень привык к работе с ними. Вот и с этой проблемой я промаялся несколько вечеров: как правильно вернуть из ngrx effect два объекта action. В Сети нашёл упоминание о том, что якобы можно вернуть массив Action, однако у меня это не взлетело. В консоли браузера с упорством барана появлялась ошибка о том, что эффект вернул неожиданный тип массива. Вот такой кусок кода не работает:

@Effect()
public initializeShell1$ = this.actions$.pipe(
    ofType(StartupUseCaseActionTypes.InitializeApplication),
    map(() => this.userService.getUser().pipe(
            map((user: ApplicationUser | undefined) =>
                user === undefined
                ? new CreateUserRedirect()
                : [new SetUserToAuthenticate({ userToAuthenticate: user }), new LoginUser()]))
    )
);

В консоли появляется вот такая ошибка:

ERROR Error: Effect "StartupUseCaseEffects.initializeShell1$" dispatched an invalid action: [object Object]
    at reportInvalidActions (effects.es5.js:236)
    at verifyOutput (effects.es5.js:214)
    at MapSubscriber.project (effects.es5.js:284)
    at MapSubscriber._next (map.js:79)
    at MapSubscriber.Subscriber.next (Subscriber.js:92)
    at spy-core.js:332
    at notify_ (spy-core.js:307)
    at Object.next (spy-core.js:332)
    at SafeSubscriber.__tryOrSetError (Subscriber.js:249)
    at SafeSubscriber.next (Subscriber.js:189)

Почитав внимательнее документацию по rxjs, я пришёл к выводу, что вместо map нужно использовать mergeMap и возвращать не массив, а Observable. Работающим результатом стал вот такой код:

@Effect()
public initializeShell$ = this.actions$.pipe(
    ofType(StartupUseCaseActionTypes.InitializeApplication),
    mergeMap(() => this.userService.getUser().pipe(
            mergeMap(user => user === undefined
                            ? of(new CreateUserRedirect())
                            : from([new SetUserToAuthenticate({ userToAuthenticate: user }), new LoginUser()])))
    ));

Надеюсь, кому-нибудь это сэкономит время.