У меня есть два запроса, написанных с SequelizeJS
Чтение:
Object.getObject = async function(){
return await this.findOne();
}
Запись:
Object.updateObject = async function(info){
const t = await sequelize.transaction();
const currentObject = await Object.findOne();
const updatedObject = currentObject.updateAttributes(info, t);
t.commit();
return updatedObject;
}
Эти запросы запускаются при переходе по URL-адресу вAPI.
Сначала я запускаю запрос на запись, а затем в обещании, которое обрабатывает успешный запрос на запись, я получаю обновленный объект.
API.updateObject().then((res) => {
API.getObject();
})
Несмотря на то, что HTTP-запрос GET и запрос на чтение запускаются после того, как HTTP-запрос UPDATE возвращается и обрабатывается как обещание.Запрос на чтение завершается первым и возвращает объектную модель в состоянии до того, как он будет изменен упомянутым запросом на запись.
Как и в случае запроса на запись, несмотря на то, что он был запущен первым и указывает, что он завершен.Вызывает запрос на чтение, который завершает и получает более старый модальный объект до завершения записи.
Есть ли что-то, с чем я не знаю, о PostgreSQL и как он обрабатывает последовательности запросов при чтении и записи в один и тот же объект?