0
我有一个if
控制语句,以便在从服务检索数据的情况下返回操作,如果不返回另一个操作以从另一个Web API
获取数据。这是一个链接效果操作,其中有另一个处理LOADFROMWEBAPI
操作的效果。如何重构从@ngrx效果中删除控制语句?
是否有更好的方法并避免if
控制语句,并返回一个动作,如LoadFromWebAPI
只?哪里可以返回行动SearchCompleteAction
是问题 - 有效还是减速?
@Effect()
search$: Observable<Action> = this.actions$
.ofType(book.SEARCH)
.debounceTime(300)
.map(toPayload)
.switchMap(query => {
if (query === '') {
return empty();
}
const nextSearch$ = this.actions$.ofType(book.SEARCH).skip(1);
return this.googleBooks.searchBooks(query)
.takeUntil(nextSearch$)
.map(books => {
if (data === undefined) {
return new book.LoadFromWebAPI(query);
} else {
return new book.SearchCompleteAction(books);
}
})
.catch(() => of(new book.SearchCompleteAction([])));
});
您已经使用三元运算符是等同于'''if'''声明。两者都是控制语句。 –
问题是如何删除“如果”;-) –