伙计们,我是Node js的新手,我正在尝试执行以下步骤
1)调用AWS API通过传递数据来创建Cognito用户。 2)当所有请求都将完成时,我会将所有记录插入数据库中。
3)user
是所有用户的数组。
这是我所做的
const obj = new ReadCsvFile();
obj.readCSVFromAWS()
.then(result => {
const user = obj.getMigratedList();
for (const i in user) {
if (user[i] !== null && user[i] !== undefined) {
const uuid = obj.createUserInCognito(user[i]);
uuid.then(userAttribute => {
user[i].uuid = String(userAttribute.User.Attributes.values); //should complete all the request
});
}
}
})
.catch(err => {
console.log(err);
});
public async createUserInCognito(data: User) {
const CognitoIdentityServiceProvider = AWS.CognitoIdentityServiceProvider;
const client = new CognitoIdentityServiceProvider({ apiVersion: "2016-04-19" });
const params = {
UserPoolId: "us-east-2_lleSjp1bN" /* required */,
Username: data.email /* required */,
DesiredDeliveryMediums: ["EMAIL"],
ForceAliasCreation: false,
// email_verified: true,
// MessageAction: "SUPPRESS",
TemporaryPassword: data.password,
UserAttributes: [
{
Name: "email" /* required */,
Value: data.email
}
]
};
return await client.adminCreateUser(params).promise();
}
问题
1)我希望所有请求都应由Cognito用户完成。
2)然后,我需要将用户列表传递到数据库中。
3)我想知道如何等待完成所有请求,然后将其插入数据库。
请帮助。
答案 0 :(得分:1)
使用下面编写的代码段:
const obj = new ReadCsvFile();
obj.readCSVFromAWS()
.then(result => {
const user = obj.getMigratedList();
for (const i in user) {
if (user[i] !== null && user[i] !== undefined) {
obj.createUserInCognito(user[i]).then(uuid=>{
uuid.then(userAttribute => {
user[i].uuid = String(userAttribute.User.Attributes.values); //should complete all the request
});
});
}
}
})
.catch(err => {
console.log(err);
});