当用户注册时,我的应用程序会做两件事 - 将用户添加到数据库并发送验证电子邮件:
...
err := collection("users").Insert(&u);
if err != nil {
WriteServerError(w, err)
return
}
if err = sendVerificationEmail(&u); err != nil {
WriteServerError(w, err)
}
...
如果没有发送电子邮件,我不想将用户添加到数据库中,如果用户没有被添加到数据库中,我也不想发送电子邮件(后者当然是用代码处理的)按此顺序块)。
假设 Go 支持事务,是否值得为这样的事情烦恼?如果是这样,那么有人可以给我一些关于如何转换上面的代码的指示吗?
我可以使用嵌套语句,但这可能会变得非常难看。
相关分类