Apollo и AwsAppsync повторяют мутацию в обратном вызове - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть клиент awsAppSync, который настроен следующим образом:

that._getClient = function() {
        return  client = new AWSAppSyncClient({
            url: appSyncUrl,
            region: AWS.config.region,
            auth: {
                type: AUTH_TYPE.AWS_IAM,
                credentials: AWS.config.credentials
            }
        });
    }

И функция изменения, которая вызывается так:

that.mutate = function(mutation, variables) {
  let client = that._getClient();
  return client.mutate({ mutation: mutation, fetchPolicy: 'no-cache', variables: variables })
  .then(function (result){
    return result;
  });
}

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

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

appSync.mutate(mutation, requestParams)
.then(function (response) {
let id = response.id
requestParams = {//new stuff}
return appSync.mutate(mutation, requestParams)
        })
.then(//and so forth)

Здесь я видел несколько постов, в которых говорится, что это может быть связано с оптимистичным ответом и т. Д., Но на самом деле я получаю две новые записив моей базе данных.Я также подумал, что кеш делает что-то трипое, но как вы можете видеть из кода, я (думаю) отключил его для мутации.

Пожалуйста, помогите.

...