Привет, у меня есть следующая функция, которая возвращает Обещание
test = (users, PaginationToken) => {
return new Promise((resolve, reject) => {
fetchAllAwsUsers(undefined, true, PaginationToken)
.then(u => {
const roles = u.users.roles;
const tempUsers = u.users.splice(u.users.roles);
users = users.concat(tempUsers);
users.roles = roles;
// users = users.concat(u).concat(u.users.roles);
if (u.PaginationToken !== undefined){
this.test(users,u.PaginationToken)
console.log("rufe nochmal auf", u);
} else {
console.log("///////////////",users);
resolve(users);
}
})
.catch(err => {
reject(err);
});
});
};
Я вызываю эту функцию в моем componentDidMount () в моем приложении ReactionJS
componentDidMount() {
this.test([], null)
.then(result => {
console.log("THEN")
const userUuid = sessionStorage.getItem('username');
const currentRole = getUserRoles(result.users, userUuid).defaultRole;
console.log("currentRole",currentRole);
const roles = result.roles;
const hasAdmin = roles.some(role => {
return isAdminOrDeveloperOrJiRole(role.roleUuid, result.users, true);
});
console.log("------RESULT",result);
this.setState({
clientId: parseInt(sessionStorage.getItem('client')),
users: result,
currentRole: currentRole,
userPermissions: getUserPermissions(result.users, userUuid),
rolePermissions: getUserPermissions(result.users, currentRole),
customer: isCustomer(result.users, currentRole),
admin: isAdminOrDeveloperOrJiRole(currentRole, result.users, true),
hasAdmin: hasAdmin,
loaded: true,
}, () => {
// this.generateSearchableUsers();
// this.fetchAllUsers(this.state.clientId);
// this.fetchAllUsersWithoutFilter();
console.log("--------------------------------------",this.state)
});
})
.catch(error => {
console.error(error);
});
Мне нужны обещания, потому чтоЯ звоню в AWS cognito API и выбираю пользователей оттуда.У них есть ограничение на выборку только 60 элементов за вызов, поэтому я должен выполнить итерацию и повторить вызов.
Как мне синхронизировать это?
Мой Resultset содержит только данные из первоговызов, а не вещи из рекурсивных вызовов.
Заранее спасибо