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