3

当 a访问我的服务器时,它会根据查询graphql request跳转到几个不同的位置。resolve functions但我不想有时用几十个小请求(基本上select每个resolve函数中的一个)来访问我的数据库。这不会很好地扩展。

有没有办法为单个 graphql 请求累积所有这些解析调用 - 以便最后我可以做一些魔术并只select为我的数据库构建一个然后解析所有承诺?

通过累积我在解析函数中返回的所有承诺,我可以看到一些自己构建东西的方法,但我不知道何时调用了单个请求的所有解析函数。

这个问题有解决方案吗?Facebook 如何应对这种情况?

谢谢

4

1 回答 1

1

将所有解析调用批处理到单个数据库查询中是 GraphQL 实现的一个活跃探索领域,并且在参考实现中不受支持。相反,我们建议使用dataloader。使用dataloader可以帮助确保您从存储层获取每条记录一次,即使它被多次查询。

于 2015-12-08T00:46:33.070 回答