2017-11-09 5 views
1

GraphQL 서버에 요청을 보내는 React-Native 앱이 있습니다. 요청/클라이언트의 제한 시간을 5 초 또는 10 초로 설정하는 방법이 필요한 경우를 제외하고는 모두 잘 작동합니다. 현재 요청 시간이 초과되기까지는 (1 분 정도) 매우 오랜 시간이 걸립니다.Apollo-Client로 요청시 시간 제한을 설정하는 방법

다음은 클라이언트 사용 방법에 대한 간단한 예입니다.

const client = new ApolloClient({ 
    networkInterface: createNetworkInterface({ 
    uri: `${config.server_hostname}/graphql` 
    }) 
}); 

client.query({ query: gqlString }); 

StackOverflow, Google 검색 또는 Apollo의 설명서를 통해 해결책을 찾을 수 없었습니다.

답변

0

Apollo 클라이언트는 (v1.9apollo-link-http) 가져 오기 API를 사용하여 요청을 보냅니다. 그러므로 거기에 is no cross-browser way to abort a fetch. 자신 만의 네트워크 인터페이스 나 링크를 만들어 다음과 같이 사용할 수 있습니다 :

const oldfetch = fetch; 
fetch = function(input, opts) { 
    return new Promise((resolve, reject) => { 
     setTimeout(reject, opts.timeout); 
     oldfetch(input, opts).then(resolve, reject); 
    }); 
} 

그러나 실제로 요청을 중단시키지 않으므로주의하십시오. 많은 요청을 실행하고 브라우저 한도에 도달 할 수 있습니다.

은 BTW 그것은 AbortController ;-)

을위한 아폴로 링크-HTTP is prepared처럼 보인다