Я работаю над образцом приложения Angular 2 и использую ngrx / store, ngrx / effects для управления состоянием.
На изображении ниже изображен один из экранов моего приложения.
Для отображения списка книг, категорий и авторов с сервера в магазин выполняются вызовы диспетчеризации, указанные ниже.
this.store.dispatch(loadCatgories());
this.store.dispatch(loadAuthors());
this.store.dispatch(loadBooks());
А ниже - связанные эффекты
@Effect() authors$ = this.actions$
.ofType(AuthorActionTypes.LOAD_AUTHORS)
.switchMap(() => this.authorService.loadAuthors())
.map(authors => loadAuthorsSuccess(authors));
@Effect() categories$ = this.actions$
.ofType(CategoryActionTypes.LOAD_CATEGORIES)
.switchMap(() => this.service.loadCategories())
.map(categories => loadCategoriesSuccess(categories));
@Effect() books$ = this.actions$
.ofType(BookActionTypes.LOAD_BOOKS)
.switchMap(() => this.bookService.loadBooks())
.map(books => loadBooksSuccess(books));
Мои вопросы
Правильно ли приведенный выше подход или есть лучший способ, по какой-то причине иногда список книг отображается на секунду, а затем они исчезают.
Если я правильно понимаю, вышеупомянутые три отправки происходят параллельно, что, если мне нужно, чтобы они происходили одна за другой.