問題を解決することができました。
以下のコードに問題はありませんでした
await session.commitTransaction(); (success)
session.endSession(); (failure)
} catch (error) { (entered)
await session.abortTransaction(); (invoked)
しかし、それはrecords.forEachループでした。
records.forEach(async (el: any) => {...});
エラーをスローするときのforeach内では、ループ内のコンテンツがループ外のコードとは異なる機能コンテキストにあるため、最も外側のtrycatchブロックによってキャッチされません。
ループを.forEach
から変更したら に
for (const el of records) {}
期待どおりに機能します。将来誰かが同じ問題に直面した場合に備えて、回答を投稿します。サポート担当者に感謝します:)