【问题标题】:Sending apollo request outside batch在批处理外发送阿波罗请求
【发布时间】:2019-02-19 22:40:33
【问题描述】:

我有一个设置了batch requests 的 apollo 前端。但是,有些请求不应包含在批处理中:

  • 组件依赖于“小”​​版本的加载请求
  • “完整”请求应该同时发生,进入缓存供以后使用
  • 如果小请求和完整请求在同一批次中发送,则在完整请求完成之前不会返回,这需要很长时间。

我想到了两个不理想的解决方案:

  • 在小请求完成后启动完整请求,使用onCompleted。不理想,因为为了速度,我想同时启动这两个
  • 设置两个后端端点,一个带批处理,一个不带批处理,并在适当的地方使用split 来引导请求。可以,但我想在没有额外端点的情况下离开

有什么想法吗?

编辑:我意识到第一个解决方案不好,因为它可能导致其他不相关的查询被延迟 - 所以到目前为止唯一的选择是最后一个解决方案。

【问题讨论】:

    标签: graphql apollo react-apollo


    【解决方案1】:

    我不是该主题的专家,但似乎apllo-link-batch-http 中的batchKey 选项是您正在寻找的。例如,最简单的方法是在您的操作前加上关键字:

    const link = BatchHttpLink({
      batchKey: operation =>
        operation.name && operation.name.value.startsWith('eager_') ? 'eager' : 'normal'
    });
    

    【讨论】:

      猜你喜欢
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 2013-02-02
      • 2021-12-28
      • 2017-10-15
      • 1970-01-01
      • 2022-06-11
      相关资源
      最近更新 更多