我有一个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)
现在,我在这里看到一些帖子说这可能与乐观的回应有关,依此类推,但实际上我的数据库中有两条新记录。我还认为缓存做得有些奇怪,但是从代码中可以看出,我(认为)为突变禁用了它。
请帮助。