我有一个React-Native应用程序,我可以在其中向GraphQL服务器发出请求。除了我需要一种方法将请求/客户端的超时设置为5秒或10秒之外,一切都很正常。目前,请求需要很长时间才会超时(大约1分钟)。
下面是我如何使用客户端的一个快速示例。
const client = new ApolloClient({
networkInterface: createNetworkInterface({
uri: `${config.server_hostname}/graphql`
})
});
client.query({ query: gqlString });我一直无法通过StackOverflow、谷歌搜索或阿波罗的文档找到任何解决方案。
发布于 2017-11-10 11:33:02
Apollo客户端使用(v1.9和apollo-link-http) fetch API发送请求。因此,这里有is no cross-browser way to abort a fetch。您可以创建自己的Networkinterface或Link,并使用以下内容:
const oldfetch = fetch;
fetch = function(input, opts) {
return new Promise((resolve, reject) => {
setTimeout(reject, opts.timeout);
oldfetch(input, opts).then(resolve, reject);
});
}但要小心,因为这实际上并不会中止请求。你最终可能会有很多运行中的请求,并达到浏览器限制。
顺便说一句,它看起来像AbortController的apollo-link-http is prepared ;-)
https://stackoverflow.com/questions/47198402
复制相似问题