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'''聲明。兩者都是控制語句。 –
問題是如何刪除「如果」;-) –