2016-09-29 1 views
4

ngrx/effects을 사용하고 있습니다.빈 작업을 보내는 방법은 무엇입니까?

어떻게하면 빈 작업을 보낼 수 있습니까?

@Effect() foo$ = this.actions$ 
    .ofType(Actions.FOO) 
    .withLatestFrom(this.store, (action, state) => ({ action, state })) 
    .map(({ action, state }) => { 
     if (state.foo.isCool) { 
     return { type: Actions.BAR }; 
     } else { 
     return { type: 'NOT_EXIST' }; 
     } 
    }); 

내가 작업을 반환해야하기 때문에, 내가 return { type: 'NOT_EXIST' };을 사용하고 있습니다 :

이것은 내가 지금 뭐하는 거지 방법이다.

더 좋은 방법이 있나요?

답변

5

필자는 유사한 알 수없는 작업을 사용했지만 대개 감속기에 대한 단위 테스트의 컨텍스트에서 사용했습니다.

당신이 효과 같은 일에 대한 불안이 있다면, 당신은 조건부 대신 mergeMap, Observable.of()Observable.empty()를 사용하여 작업을 방출 수 :

@Effect() foo$ = this.actions$ 
    .ofType(ChatActions.FOO) 
    .withLatestFrom(this.store, (action, state) => ({ action, state })) 
    .mergeMap(({ action, state }) => { 
    if (state.foo.isCool) { 
     return Observable.of({ type: Actions.BAR }); 
    } else { 
     return Observable.empty(); 
    } 
    }); 
+0

덕분에, 그 좋은 방법입니다 :) –

관련 문제