docs: added troubleshooting guide for promise.all (#5586)
* docs: added troubleshooting guide for promise.all * fix eslint errors
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# Database Transaction Not Rolling Back When Promise.all is Used
|
||||
|
||||
Due to how `Promise.all` works, when you run multiple database transactions within it, these transactions may not be rolled back when an error occurs.
|
||||
|
||||
To mitigate this issue, use the `promiseAll` function which can be imported from `@medusajs/utils`. For example:
|
||||
|
||||
```ts
|
||||
import { promiseAll } from "@medusajs/utils"
|
||||
import { TransactionBaseService } from "@medusajs/medusa"
|
||||
|
||||
class MyService extends TransactionBaseService {
|
||||
async performTransactions() {
|
||||
return await promiseAll([
|
||||
// your transactions....
|
||||
])
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -2098,6 +2098,11 @@ module.exports = {
|
||||
id: "troubleshooting/database-error",
|
||||
label: "Database Errors",
|
||||
},
|
||||
{
|
||||
type: "doc",
|
||||
id: "troubleshooting/promise-all-rollback",
|
||||
label: "Database Transactions and Promise.all",
|
||||
},
|
||||
{
|
||||
type: "doc",
|
||||
id: "troubleshooting/redis-events",
|
||||
|
||||
Reference in New Issue
Block a user