Я довольно новичок в концепции Обещаний и пытаюсь понять, как работают эти области.Я в основном пытаюсь сохранить значение из then () в переменную вне Promise
Ниже приведена простая функция, которую я написал вNodejs (Express), использующий Sequelize для запуска запроса к БД.
exports.getTest = (req, res, next) => {
var categories = [];
var names = ['Category 1', 'Category 2', 'Category 3', 'Category 4'];
for (var i = 0; i < names.length; i++) {
model.Category.findOne({
where: {
name: names[i]
},
attributes: ['id']
}).then(id => {
categories.push(
{
category_id: id.id
});
});
}
res.json(categories);
}
У меня есть другая логика для запуска после этого, и у меня есть цикл for вокруг Promise.Поэтому я не могу запустить свою следующую логику внутри функции then, иначе она будет запущена несколько раз из-за цикла for.Мне нужно заполнить массив category , чтобы использовать его в моей следующей операции.
В настоящее время мой ответ (res.json(categories)
) []
Любая помощь будетпризнателен.
PS: я знаю, что это общая тема, но, как я уже говорил, я довольно новичок в этом, и другие ответы не соответствовали моему сценарию и еще больше сбивали меня с толку.
Заранее спасибо!