首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Apollo-Client设置请求超时

如何使用Apollo-Client设置请求超时
EN

Stack Overflow用户
提问于 2017-11-09 17:38:27
回答 1查看 16K关注 0票数 12

我有一个React-Native应用程序,我可以在其中向GraphQL服务器发出请求。除了我需要一种方法将请求/客户端的超时设置为5秒或10秒之外,一切都很正常。目前,请求需要很长时间才会超时(大约1分钟)。

下面是我如何使用客户端的一个快速示例。

代码语言:javascript
复制
const client = new ApolloClient({
  networkInterface: createNetworkInterface({
    uri: `${config.server_hostname}/graphql`
  })
});

client.query({ query: gqlString });

我一直无法通过StackOverflow、谷歌搜索或阿波罗的文档找到任何解决方案。

EN

回答 1

Stack Overflow用户

发布于 2017-11-10 11:33:02

Apollo客户端使用(v1.9apollo-link-http) fetch API发送请求。因此,这里有is no cross-browser way to abort a fetch。您可以创建自己的Networkinterface或Link,并使用以下内容:

代码语言:javascript
复制
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 ;-)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47198402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档