Пн goose возврат из withTransaction - PullRequest
0 голосов
/ 12 июля 2020

Я хочу использовать помощник 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.

1 Ответ

1 голос
/ 12 июля 2020

Похоже, это известная проблема в драйвере узла. Некоторые обходные пути предусмотрены в этой заявке.

...