2017-11-01 3 views
0

두 개의 개별 API 결과가 필요한 자동 완성 구성 요소가 있습니다. 두 API는 자동 완료 이후에 디 바운딩 된 기간과 함께 호출해야합니다. 나는 react-redux와 redux-api를 사용하고 있습니다. 이것은 내가 지금까지 가지고있는 것이다. 반환하는 검색 방법을 참조하십시오. 문제는 통화 중 하나만 발생합니다. 내 AutoCompleteContainer.js다중 발송 작업 디 바운싱

const mapDispatchToProps = dispatch => { 
    const debounceDispatch = debounce(dispatch, 500); 
    return { 
    search(term) { 
     return Promise.all([ 
     // Fix me! Only one of the calls below happens. 
     debounceDispatch(rest.actions.suggestions({ q: term })), 
     debounceDispatch(rest.actions.concepts({ corpus: 'desc', term: [term] })) 
     ]); 
    }, 
    async reset() { 
     await dispatch(rest.actions.suggestions.reset()); 
     await dispatch(rest.actions.concepts.reset()); 
    } 
    }; 
}; 

에서

나는 구성 요소 수준에서 진동을 소거해야 하는가? 아니면 여기서 할 수 있을까요?

+0

는'내가 메서드 수준에서 디 바운스 – TryingToImprove

+1

을 search'. 감사 – Vishal

답변

0

두 작업을 모두 디스패치하는 함수가 있어야하며 해당 함수를 debounce으로 장식해야합니다.

그래서 이런 식으로 뭔가 : 당신은 제대로`debounce` 이전 호출을 담당하는 방법으로 처리해야

const handleAutocomplete =() => { 
    dispatch(rest.actions.suggestions({ q: term })), 
    dispatch(rest.actions.concepts({ corpus: 'desc', term: [term] })) 
} 

const debounceHandleAutocomplete = debounce(handleAutocomplete,500)