我想利用猫鼬的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
。
这似乎是节点驱动程序中的已知问题。该票证中提供了一些解决方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句