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