我有一个用例,如果从数据库中删除某个用户,我将需要从外部服务中删除该用户.如果这两个操作中的任何一个失败,则应undo撤消整个移除.我在想,有没有可能这样做:
const removeUser = async (user) => {
await db.tx(async tx => {
await removeUserFromDB(tx, user)
await removeUserFromExternalService(user)
})
}
在pg-promise文档中,transaction文档说如果tx回调失败,transaction将回滚.即使对不使用tx上下文的外部服务的调用失败,这是否仍然有效?在这里,如果回调中的任何一个操作失败,事务都应该回滚.