AWSAppSync GraphQL Мутация выполняется дважды - PullRequest
0 голосов
/ 07 февраля 2019

Так что я не знаю, действительно ли это описывает мою проблему, но является ли она самой близкой, которую я мог бы получить.

Я использую AWSAppsyncClient для выполнения некоторых мутаций GraphQL.Из-за характера модели и, в большей степени, моей неопытности, мне нужно создать запись main, а затем две записи, которые зависят от первой, прежде чем я смогу связать их в базе данных.

В настоящее время я делаю первую мутацию, и она возвращает идентификатор созданной записи.Промежуточные записи затем создаются в обещаниях, возвращаемых запросом.В основном это выглядит так:

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.Например, создается первая запись и возвращается идентификатор, но затем во втором вызове API первый запрос каким-то образом снова выполняется, наряду с новым, в результате чего создаются две исходные записи.Это продолжается до тех пор, пока цепочка продолжается, всегда снова выполняя предыдущий запрос, создавая две записи для каждого нового объекта.(Это происходит только тогда, когда в обещании выполняется другой запрос.)

Я не знаю, достаточно ли это ясно, я с радостью предоставлю больше деталей, если это необходимо, но может кто-нибудь сказать мне, что яя делаю неправильно?

1 Ответ

0 голосов
/ 07 февраля 2019

Если нет необходимости создавать эту цепочку на внешнем интерфейсе, вы можете сделать это на уровне AppSync, если вы используете pipe .Вы можете создать три функции и вызывать их в резольвере вида PIPELINE.

...