猫鼬从withTransaction回调返回值

臭名昭著的911

我想利用猫鼬的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

D.SM

这似乎是节点驱动程序中已知问题该票证中提供了一些解决方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章