SPA 可以针对单个 GraphQL 服务器发出并行异步查询吗?
Posted
技术标签:
【中文标题】SPA 可以针对单个 GraphQL 服务器发出并行异步查询吗?【英文标题】:Can an SPA issue parallel async queries against a single GraphQL server? 【发布时间】:2017-12-13 00:08:04 【问题描述】:GraphQL 通常服务于单个端点。例如,我能否拥有一个带有六个实时状态显示的 SPA 页面,每个页面都向同一个端点发出一个独立的承诺包装请求?查询负载需要时间来组装,并且不会按照收到请求的顺序完成。此外,某些状态负载可能需要几秒钟或更长时间才能完成。我不想批量处理请求,我希望每个显示器的数据在其数据可用后立即交付。
【问题讨论】:
听起来好像您需要订阅(在 graphql-java 中尚未准备好)。除此之外,我不明白这个场景有什么特别之处?为什么并发请求会成为问题? 他们不是。作为单个端点的结果的总菜鸟问题,不知道解析器可以返回承诺,以及 graphiql 的串行性质(它忽略了除最近查询之外的所有响应)。为了测试,我添加了一个解析器,它返回一个包含 setTimeout 的承诺,在随机超时后解析响应。然后我只需手动提交一系列快速查询。它们重叠并根据需要正确解析。感谢您的 cmets。 我也玩过订阅 - 令人兴奋的东西。 【参考方案1】:是的,你可以,你会失去 GraphQL 的好处之一,但除了 GraphQL 服务器增加的少量延迟之外,在你遇到需要水平扩展 GraphQL 服务器之前,你不会遇到任何缺点。
【讨论】:
以上是关于SPA 可以针对单个 GraphQL 服务器发出并行异步查询吗?的主要内容,如果未能解决你的问题,请参考以下文章