GraphQL - 如何使用返回值作为下一个查询的变量?

Mik*_*ike 7 graphql

如何获取第一个查询的返回结果并将该结果分配给要在第二个查询中使用的变量?在进行第二次调用之前,我需要第一个值结果,但只想进行 1 次调用来完成此操作。我的查询:

query {
    test1(sku: "12345"){                    
          price
    }
    test2(itemPrice: $price){ 
          isSuccessful
    }
}
Run Code Online (Sandbox Code Playgroud)

Vis*_*tna 5

您的查询:

\n
query {\n    test1(sku: "12345"){                    \n          price\n    }\n    test2(itemPrice: $price){ \n          isSuccessful\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

解析查询时,它\xe2\x80\x99s 转换为AST或树。在您的情况下,您的查询将如下所示:

\n

在此输入图像描述

\n

现在每个 graphQl 查询都涉及 3 个阶段:

\n

1.解析\xe2\x80\x94 查询被解析为抽象语法树(或 AST)。AST 非常强大,并且支持 ESLint、babel 等工具。

\n

2.验证\xe2\x80\x94 AST根据架构验证检查查询语法是否正确以及字段是否存在。

\n

3.执行\xe2\x80\x94 运行时从树的根部开始遍历 AST,调用解析器,收集结果并发出 JSON。

\n
\n

根查询类型是树的入口点,包含两个根字段test1test2。和解析器是并行执行的(这在所有运行时中都是典型的)test1test2树是广度优先执行的,这意味着必须在子树执行之前解析price用户isSuccessful

\n
\n

所以基本上在一个查询中你现在无法解决你的问题。

\n