기능을 수행합니다각도이 효과는 내가이 효과를 가지고
@Effect() createModel$: Observable<Action> = this.actions$
.ofType(CREATE_MODEL_REQUEST)
.switchMap(action => this.modelsApi.createModel(action.payload)
.do(() => ({type: CREATE_MODEL_SUCCESS}))
.map(() => ({type: GET_MODELS_REQUEST}))
.catch((err: any) => Observable.of({type: REQUEST_FAILURE, payload: err})));
을 그리고 요청이 성공적인 경우 activeRequests
카운터를 감소 내 http
감속기에 성공 조치를 파견하기 위해 노력하고있어. 그리고 .map
은 API에서 새 모델 목록을 가져 오는 새로운 get 요청을 트리거해야합니다.
내가하는 일과 상관없이 내가 시도하는 것처럼 보이더라도 CREATE_MODEL_SUCCESS
과 GET_MODELS_REQUEST
을 모두 실행할 수 없다는 것이 문제입니다.
createModel
함수의 초기 호출이 성공적 일 경우 두 함수가 모두 실행되는지 어떻게 확인할 수 있습니까?
편집 : 그것은 실제로 내가 console.log(true)
로 교체하는 경우 때문에 나는 그것이 실행되는 것을 볼 수 있습니다 실행되는 .do
처럼 보이지 않지만,이 ({type: CREATE_MODEL_SUCCESS})
를 전달하지 않습니다.
그래서 해결책은 ... 무엇입니까 : 여러 조치를 방출하려면
, 당신은 이런 식으로 뭔가를 사용할 수 있습니까? – Chrillewoodz
니스, 작동합니다. 무슨 일이 일어나는지 깊이 더 설명해 주시겠습니까? rxjs 방법을 이해하기는 너무 힘들지만 괜찮은 설명을 찾기는 힘듭니다. – Chrillewoodz
'switchMap'은 소스 observable에서 나오는 것을 스위치 한 observable에서 나오는 것으로 바꾼다. 그리고 반환 된 observable은 두 개의 액션을 내 보낸다. - Observable.from은 배열에서 하나씩 전달되는 값을 방출한다. 그런 다음 액션이 효과에서 흘러 나와 상점 등으로 알려집니다. – cartant