首页 > 解决方案 > React Apollo - 如何在单个 pollInterval 中进行多个查询

问题描述

我有多个要在每 10 秒后获取的查询,我可以像这样获取查询:

compose(
  graphql(QUERY_1, {
    options: {
      pollInterval: 10000
    }
  }),
  graphql(QUERY_2, {
    options: {
      pollInterval: 10000
    }
  }),
  ....
)

但这会产生不止一个我不想要的间隔。有没有办法在react-apollo一个时间间隔内进行多个查询。例如这样的:

compose(
  graphql([QUERY_1, QUERY_2],
    options: { pollInterval: 10000 }
  ),
  ...
)

标签: javascriptgraphqlreact-apollo

解决方案


我现在这样做的方式是将多个查询组合在一起,例如

const QUERIES_GROUP = gql`
  {
    QUERY_1 ...,
    QUERY_2 ...
  }
`
compose(
  graphql(QUERIES_GROUP, {
    options: { pollInterval: 10000 }
  })
)

使用上述方法的缺点是我们不能重用查询QUERY_1QUERY_2其他一些组件

另一种选择是使用批处理https://www.apollographql.com/docs/link/links/batch-http.html


推荐阅读