【问题标题】:AWSAppSync GraphQL Mutation executed twiceAWSAppSync GraphQL Mutation 执行了两次
【发布时间】:2019-06-30 22:21:56
【问题描述】:

所以我不知道this 是否真的描述了我的问题,但它是我能得到的最接近的。

我正在使用 AWSAppsyncClient 进行一些 GraphQL 突变。由于模型的性质,在很大程度上是我的经验不足,我需要创建一个 main 记录,然后创建两个依赖于第一个记录的记录,然后才能将它们链接到数据库中。

目前,我正在执行第一个突变,它返回创建记录的 ID。然后在查询返回的承诺中创建中间记录。它基本上看起来像:

AppsyncClient.mutate(mutation,parameters)//first api call
.then( function (res){ 
 // create the new object from the response of the mutation

return AppsyncClient.mutate(mutation,parameters)})//second api call
.then( function (res){ // second API Call
 // create the new object from the response of the mutation

return AppsyncClient.mutate(mutation,parameters)})
.then(etc...

问题是承诺会针对我的 API 重新运行原始请求。例如,创建了第一个记录,并返回了 id,但是在第二个 API 调用中,第一个请求以某种方式再次与新请求一起执行,导致创建了两个原始记录。只要链继续,这种情况就会继续,总是再次执行前一个请求,为每个新对象创建两条记录。 (只有在 promise 中完成另一个查询时才会发生这种情况。)

我不知道这是否足够清楚,如果需要,我很乐意提供更多详细信息,但有人可以告诉我我做错了什么吗?

【问题讨论】:

    标签: graphql apollo aws-appsync


    【解决方案1】:

    如果不需要在前端做这个链,如果你使用pipeline,你可以在AppSync层做。您可以创建三个函数并在 PIPELINE 类型的解析器中调用它们。

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 2018-06-28
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多