Хочу передать в promise параметр с другого файла. Но из-за асинхроности (как мне кажется) выдаёт неверный ответ.
var promise_get_permissions = function (user_id_current) {
return new Promise(function (resolve, reject) {
console.log(user_id_current);
var result_array = [];
connection.UserRoles
.findAndCountAll({
where: {
userId: user_id_current
}
})
.then(function (result) {
var role_id_current;
for (var i = result.count - 1; i >= 0; i--) {
role_id_current = result.rows[i].dataValues["roleId"];
connection.RolePermissions
.findAndCountAll({
where: {
roleId: role_id_current
}
})
.then(function (result) {
var permission_id_current;
//console.log("permissions result:", result);
for (var i = result.count - 1; i >= 0; i--) {
permission_id_current = result.rows[i].dataValues["permissionId"];
connection.Permissions
.findById(permission_id_current)
.then(function (result) {
result_array.push(result.dataValues["code"]);
})
}
})
.then(function () {
unique(result_array);
});
}
})
.then(function () {
unique(result_array);
resolve(result_array);
})
});
};
Вызываю код, который выше, здесь:
func_auth.promise_get_permissions(request.user)
.then(function (result) {
console.log(result);
for (var i = result.length - 1; i >= 0; i--) {
get_permissions_array[result[i]] = true;
// console.log(get_permissions_array[result[i]]);
}
console.log(get_permissions_array);
})
.then(function(){
response.render("main.hbs",{
is_auth_visible: request.isAuthenticated(),
get_permissions: get_permissions_array
});
})
но в итоге result
пустой, а в нём должны бытьcode
ы
Укажите на ошибку или предложите альтернативный вариант.
Заранее спасибо!
И еще вопрос! Можно ли заставить ждать пока сработают все then
ы?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как в Vue анимировать изменение высоты, когда удаляется или добавляется DOM элемент внутри определенного блока?