0

桑格利亚汽酒中究竟使用了多少根参数?这是文档

preparedQuery.execute(userContext = someCustomCtx, root = event))

查询已经包含解析器,如何使用root

4

1 回答 1

0

Graphql查询本质上是嵌套的,这意味着每个GraphQL查询都具有树的形状,它们绝不是圆形的。

执行从查询的根开始。首先,执行器调用顶层字段的解析函数。它一直等到所有这些解析函数都返回了一个值。一旦发生这种情况,GraphQL 服务器将获取此解析函数的返回值并将其传递给二级字段的解析函数,因为这些是查询中请求的字段。

树的一个节点的结果对其所有直接子节点都可用,这以级联方式沿树向下继续。

同时,Context它是特定查询中所有解析器共享的对象,用于包含每个请求的状态,包括身份验证信息、数据加载器实例以及解析查询时应考虑的任何其他内容。Context不同之处Root在于它先计算,然后可用于所有字段。

现在有了所有这些上下文,为了回答您的问题,顶级字段的解析器具有可供它们使用的根值。这个roottype是在执行器本身中定义的——

case class Executor[Ctx, Root]

并且在调用函数时传递一个Root类型的实例(或任何其他可以证明与 this 相同的实例)。typeexecute

如果您的用例不需要使用 this Root,您可以将其设置为 Unit 并在root = (),调用 execute 方法时传入。

于 2019-08-10T09:59:32.673 回答