【发布时间】: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