Я хочу использовать помощник mon goose withTransaction
, особенно из-за его способности автоматически повторять временные ошибки транзакции. Однако кажется, что помощник withTransaction
не может возвращать данные, что является проблемой для меня.
У меня есть код, который выглядит так:
import { startSession } from 'mongoose';
async addItem(itemData) {
const session = await startSession();
session.startTransaction();
try {
const item = await new Item({ itemData }).save({ session });
// a bunch of other async operations...
await session.commitTransaction();
session.endSession();
return item;
} catch (error) {
await session.abortTransaction();
session.endSession();
throw error;
}
}
Как я могу либо ( 1) использовать помощник withTransaction
, но эта функция по-прежнему возвращает item
в том виде, в каком она есть в настоящее время, или (2) заставляет эту функцию автоматически повторять попытки временных ошибок транзакции каким-либо способом, кроме использования withTransaction
.