根据此处的文档,graphql-tools 库中解析器函数的第二个参数是传递给查询的对象
http://dev.apollodata.com/tools/graphql-tools/resolvers.html#Resolver-function-signature
但是,如果我使用 graphql >= 0.8.0 版本运行 graphql-tools,则作为第二个参数传递的“对象”缺少一些对象属性。例如arg.constructor
和arg.hasOwnProperty
是未定义的。
在之前的版本 0.7.2 中,这两个语句的计算结果都为 true:
arg.consructor === Object
arg.hasOwnProperty === 'function'
有谁知道实际上作为第二个参数传递了什么,或者为什么这些通常存在于 JS 对象上的属性是未定义的?
编辑如下:
我可以通过这样做来解决这个问题:
async resolverFuncForMutation(root, nonObjArgs, context) {
const args = Object.assign({}, nonObjArgs);
但我不想记住如何为每个解析器功能做到这一点。如果有一种方法可以将其配置为在某种预解析挂钩中发生,有谁知道怎么做?