0.5.0graphql-js 的发布包含对resolve函数的重大更改- 它现在接收一个额外的context参数.
它看起来像是context用于携带用户会话数据.rootValue现在参数的用例是什么?
RootValue 是顶级解析器的第一个参数,它在该函数中仍然有用。
从技术上讲,根查询/突变类型也可以是架构中另一个字段的解析类型。如果只能在通过非根类型访问该解析函数时为其提供输入值,那就很尴尬了。这是一个例子:
type Mutation {
someMutationField: Query
}
type Query {
someField: String
}
schema {
query: Query
mutation: Mutation
}
Run Code Online (Sandbox Code Playgroud)
保留 rootValue 的另一个原因:它可以用于将两个 GraphQL 子模式合并到一个更大的模式中,其中子模式驻留在不同的服务器上。为了能够做到这一点,您需要有一种方法将根值与查询一起传递到顶级解析函数中。当前用于express-graphql的HTTP传输不允许您这样做,但它可以很容易地添加。
尽管我以前没有见过有人以这种方式使用 rootValue,但我认为迟早有人会以这种方式使用它,或者找到它的其他用途,这可能就是它没有从 GraphQL 中删除的原因 - JS。
| 归档时间: |
|
| 查看次数: |
993 次 |
| 最近记录: |