【问题标题】:GraphQL - How do I use the return value as a variable for the next query?GraphQL - 如何将返回值用作下一个查询的变量?
【发布时间】:2020-12-15 14:20:03
【问题描述】:

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

query {
    test1(sku: "12345"){                    
          price
    }
    test2(itemPrice: $price){ 
          isSuccessful
    }
}

【问题讨论】:

    标签: graphql


    【解决方案1】:

    您的查询:

    query {
        test1(sku: "12345"){                    
              price
        }
        test2(itemPrice: $price){ 
              isSuccessful
        }
    }
    

    解析查询时,会将其转换为 AST 或树。在您的情况下,您的查询将如下所示:

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

    1.解析 — 将查询解析为抽象语法树(或 AST)。 AST 非常强大,并且在 ESLint、babel 等工具的背后。

    2.ValidateAST 针对架构进行验证。检查查询语法是否正确以及字段是否存在。

    3.执行 — 运行时遍历 AST,从树的根开始,调用解析器,收集结果,然后发出 JSON。

    根查询类型是树的入口点,包含我们的 两个根字段,test1test2test1test2 解析器 并行执行(这在所有运行时中都很典型)。这 树是广度优先执行的,这意味着必须先解析用户 它的子 priceisSuccessful 被执行。

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

    【讨论】:

    • 您好,您知道是否有某种解决方法吗?以某种方式重新排列查询?
    猜你喜欢
    • 2019-03-30
    • 2017-12-27
    • 2018-12-21
    • 1970-01-01
    • 2018-10-03
    • 2019-11-14
    • 2021-03-04
    • 2017-05-15
    • 1970-01-01
    相关资源
    最近更新 更多