2017-12-13 9 views
0

다음은 내 응용 프로그램에서 진행되는 단계입니다.API 호출과 함수를 동기화하십시오.

  1. UI 이벤트를 기반으로 상태를 업데이트하십시오.
  2. 상태 업데이트로 API 요청이 만들어집니다.
  3. 그 API 요청의 응답에 기초
  4. 은, 두 개의 매개 변수, 2 단계

의 API 요청의 응답에서 1 단계와 다른 업데이트 된 상태에서 하나의 오브젝트를 허용하는 다른 함수 호출을 내가 할 수없는 것은 어떻게하면 두 번째 함수가 첫 번째 요청이 완료 될 때까지 기다릴 수 있을까요?

코드를 업데이트하여 API 요청을하십시오.

this.setState({ 
    // Set State here. 
},() => { 
    this.props.Make_API_Call(params); 
}); 

세 번째 함수를 호출해야하는 두 개의 매개 변수는 위 코드를 실행 한 후 이미 내 구성 요소의 로컬 상태에 있습니다. 남아있는 문제점은 세 번째 기능을 어떻게 부착합니까?

+0

Make_API_Call 함수에서 약속을 반환 할 수 있으며 그 약속을 해결하는 동안 세 번째 함수를 실행할 수 있습니다. 약속을 지원할 때 일부 가져 오기 라이브러리 (예 : whatwg-fetch)를 사용하면 약속을 반환하는 것이 어려워서는 안됩니다. –

답변

1

함수 MAKE_API_CALL()이 약속을 반환하는지 확인하십시오. 해당 약속이 해결되면 .then 기능 (이행 또는 거부)이 실행됩니다.

this.setState({ 
    // Set State here. 
},() => { 
    this.props.Make_API_Call(params).then(function(res) { 
    thirdFunction(this.state.someValue, res) 
    }, function(reason) { 
    // rejection 
    }); 
});