如果已经满足所有响应字段,则避免调用嵌套解析器

时间:2017-03-06 12:04:41

标签: graphql apollo

我有一个架构,在根查询上接收timeInterval iput并将其传递给嵌套级别/解析器。我尝试在root级别向该输入添加验证,因此如果验证失败,那么我应该返回并error并返回null其他字段。问题是如果我在root级别执行此操作,那么我就不知道如何避免graphql-tools调用嵌套解析器(因为他们没有timeInterval而失败在每个解析器的obj中定义的变量。

让我知道您是否需要和架构示例以及更多详情,谢谢!

1 个答案:

答案 0 :(得分:0)

这是内置于GraphQL.js(来自Facebook的参考实现)的工作原理。 GraphQL-Tools只是一个顶层的库,它使编写解析器和模式更加精确。

在GraphQL.js中,只要父解析器返回nullundefined以外的任何内容,或者如果它抛出错误,就会调用子解析器。

所以听起来在你的情况下你会返回一些数据,但缺少一个字段,在这种情况下,GraphQL.js不知道它应该避免调用嵌套字段。有关架构和解析器的更多细节肯定会帮助我找到一个特定的解决方案。