我正在开发一个示例 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));
我的问题是
上述方法是正确的还是有更好的方法,由于某种原因,有时书籍列表会显示第二次,然后它们就会消失。
如果我的理解是正确的,以上三个调度是并行发生的,如果我需要它们一个接一个地发生怎么办。