当graphql请求
到达我的服务器时,它会根据查询跳转到几个不同的解析函数
。
但我不想有时用几十个小请求(基本上是每个 resolve
函数中的一个 select
)来访问我的数据库。这实际上并不能很好地扩展。
有没有一种方法可以累积单个 graphql 请求的所有这些解析调用 - 这样最后我就可以施展一些魔法,只为我的数据库构建一个 select
,然后解析所有的 Promise ?
通过累积在解析函数中返回的所有 promise ,我可以看到几种自己构建某些东西的方法,但我不知道单个请求的所有解析函数何时被调用。
这个问题有解决办法吗? Facebook 如何处理这种情况?
谢谢
最佳答案
将所有解析调用批处理到单个数据库查询中是 GraphQL 实现的一个活跃探索领域,但引用实现中不支持。相反,我们建议使用 dataloader 。使用dataloader
可以帮助确保您从存储层获取每条记录一次,即使它被查询多次。
关于reactjs - 如何累积单个请求的解析调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34145915/