AWSAppSync GraphQL突变执行两次

AWSAppSync GraphQL突变执行两次,graphql,apollo,aws-appsync,Graphql,Apollo,Aws Appsync,所以我不知道是否真的描述了我的问题,但这是我能得到的最接近的 我正在使用AWSAPSyncClient做一些GraphQL突变。由于模型的性质,在更大程度上,由于我的经验不足,我需要创建一个main记录,然后创建两个依赖于第一个记录的记录,然后才能将它们链接到数据库中 目前,我正在进行第一次变异,它返回所创建记录的ID。然后在查询返回的承诺中创建中间记录。它基本上看起来像: AppsyncClient.mutate(mutation,parameters)//first api call .th

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

我正在使用AWSAPSyncClient做一些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...
问题是promise针对我的API重新运行原始请求。例如,创建了第一条记录,并返回了id,但在第二个API调用中,第一个请求以某种方式与新的请求一起再次执行,从而创建了两条原始记录。只要链继续,这种情况就会持续,总是再次执行上一个请求,为每个新对象创建两条记录。(只有在承诺中完成另一个查询时,才会发生这种情况。)


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

如果不需要在前端制作此链,您可以在AppSync层上使用它。您可以创建三个函数,并在类似于管道的解析器中调用它们