Javascript 如何使用Apollo客户端设置请求超时

Javascript 如何使用Apollo客户端设置请求超时,javascript,react-native,graphql,apollo,apollo-client,Javascript,React Native,Graphql,Apollo,Apollo Client,我有一个React本机应用程序,可以向GraphQL服务器发出请求。一切正常,除了我需要一种方法将请求/客户端的超时设置为5秒或10秒。目前,请求需要很长时间才能超时(大约1分钟) 下面是一个如何使用客户端的快速示例 const client = new ApolloClient({ networkInterface: createNetworkInterface({ uri: `${config.server_hostname}/graphql` }) }); client.

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

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

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

client.query({ query: gqlString });
我无法通过StackOverflow、google search或Apollo的文档找到任何解决方案。

Apollo客户端使用(和)fetch API发送请求。所以有。您可以创建自己的网络接口或链接,并使用以下内容:

const oldfetch = fetch;
fetch = function(input, opts) {
  return new Promise((resolve, reject) => {
      setTimeout(reject, opts.timeout);
      oldfetch(input, opts).then(resolve, reject);
  });
}
但是要小心,因为这实际上不会中止请求。您可能会遇到大量正在运行的请求,并达到浏览器限制


顺便说一句,它看起来像阿波罗链接http;-)

知道AbortController是否可以运行了吗?Mozilla文档说它现在在大多数浏览器上都有完全或部分支持,但我正在考虑使用polyfill-just-in-case(),以缩短超时时间。