问题出现在使用AWS DAX Client对DynamoDB进行读写操作时,可能会出现以下错误提示:"AWS DAX Client promise() Error: Request object already used"。这通常是由于对于同一请求对象,多次调用promise()方法导致的。解决方法是每次调用请求方法时都创建新的request对象,而不是重复使用同一个request对象。
以下是示例代码解决此问题:
const AWS = require('aws-sdk'); const daxClient = new AWS.DynamoDB.DocumentClient({ region: 'us-west-2', service: new AWS.DAX({ endpoints: ['your-dax-cluster-endpoint'], region: 'us-west-2' }) });
//旧代码 var params = { TableName: "myTable", Key: { "partitionKey": "myPartitionKey", "sortKey": "mySortKey" } };
daxClient.get(params).promise().then(result => { console.log(result); }).catch(err => { console.error(err); });
//新代码 var params = { TableName: "myTable", Key: { "partitionKey": "myPartitionKey", "sortKey": "mySortKey" } };
var getRequest = daxClient.get(params); getRequest.promise().then(result => { console.log(result); }).catch(err => { console.error(err); });
上一篇:AWSDAX表扫描性能问题