如何为单个请求累积解析调用?

时间:2015-12-08 00:26:11

标签: reactjs relayjs graphql graphql-js

graphql request点击我的服务器时,它会跳转到几个不同的resolve functions,具体取决于查询。 但我不想用有时几十个小请求(在每个select函数中基本上是resolve)来访问我的数据库。这不会真的很好地扩展。

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

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

这个问题有解决方法吗? Facebook如何处理这种情况?

谢谢

1 个答案:

答案 0 :(得分:1)

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