У меня есть задание cron, которое сбрасывает список элементов на веб-сайте, а затем вставляет или обновляет записи в базе данных. Когда я очищаю страницу, я хочу создать записи для новых, которые еще не были созданы, иначе обновите существующие. В настоящее время я делаю что-то вроде этого:Sequelize правильно выполнение нескольких создает + обновления
// pretend there is a "Widget" model defined
function createOrUpdateWidget(widgetConfig) {
return Widget.find(widgetConfig.id)
.then(function(widget) {
if (widget === null) {
return Widget.create(widgetConfig);
}
else {
widget.updateAttributes(widgetConfig);
}
});
}
function createOrUpdateWidgets(widgetConfigObjects) {
var promises = [];
widgetConfigObjects.forEach(function(widgetConfig) {
promises.push(createOrUpdateWidget(widgetConfig));
});
return Sequelize.Promise.all(promises);
}
createOrUpdateWidgets([...])
.done(function() {
console.log('Done!');
});
Это, кажется, работает хорошо, но я не уверен, если я делаю это «правильно» или нет. Все обещания, которые выполняют взаимодействия с БД, нужно запускать поочередно или как я их определяю? Есть ли лучший способ сделать это?
Благодарим вас за логику. Борясь с этим. – Craicerjack