Ich schreibe einen Dynamodb-Code, der das folgende tut.Verwirrt mit Versprechen in einer Schleife
- Scannen Sie eine bestimmte Spalte und die Werte erhalten, und fügen Sie sie in ein Array
- das Array konvertieren Array zu setzen und wieder die einzigartigen Werte zu erhalten
- Schleife durch diese eingestellten Werte als Parameter und erhalten der tatsächliche Wert.
Grundsätzlich versuchen, eine Gruppe von in DynamoDb zu erstellen.
Hier der 1. und 2. Schritt kann ich es tun. aber zu Schritt 3 komme ich habe eine Schleife und innerhalb der Schleife muss der Code ausgeführt werden und mein Code ist wie folgt.
var AWS = require("aws-sdk");
var creds = new AWS.Credentials('akid', 'secret', 'session');
AWS.config.update({
"accessKeyId": "myAccessId",
"secretAccessKey": "MySecretAccessKey",
"region": "us-east-1"
});
var dynamodb = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: "MyTable",
FilterExpression: "#target_state = :target_state",
ExpressionAttributeNames: {
"#target_state": "target_state"
},
ExpressionAttributeValues: {
":target_state": "5"
}
};
var array = [];
dynamodb.scan(params).promise().then(function (data) {
data.Items.forEach(function (itemData) {
array.push(itemData.ruleNo)
});
console.log(array);
return array;
}).then(() => {
console.log("Entered 2nd block " + [...new Set(array)]);
var array2 = [...new Set(array)];
for (index = 0; index < array2.length; ++index) {
console.log(array2[index]);
var params1 = {
TableName: "ChemicalData",
FilterExpression: "#target_state = :target_state and #ruleNo=:ruleNo",
ExpressionAttributeNames: {
"#target_state": "target_state",
"#ruleNo": "ruleNo"
},
ExpressionAttributeValues: {
":target_state": "5",
":ruleNo": array2[index]
}
};
return dynamodb.scan(params1).promise().then(function (data) {
var uw = JSON.stringify((data.Items));
return uw;
});
}
}).then((data) => {
console.log(data);
}).catch(err => {
console.log(err)
})
, wenn ich dieses Programm ausführen, dass ich das Ergebnis erhalten, ist nur ein Wert, und das ist das erste Array-Wert, ich bin nicht in der Lage zu wissen, wie kann ich eine Schleife durch die alle Array-Variablen und dann tun a console.log(data)
. Bitte lassen Sie mich wissen, wo ich falsch liege und wie ich das beheben kann.
Dank