promise.all mongoose操作数据库
利用 Promise.all([p1, p2]) 去操作两个promise函数,这两个函数内部都是用 mongoose 来操作数据库。
如果 p1 被 reject 了,而 p2 是 resolve。
我的问题是,p2 实际上已经进行了对数据库的操作,是这样吗,还是 promise.all 确保了 p1、p2 都 resolve 才会进行实际的数据库操作?
感觉是 mongoose 事务性的问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Promise.all 是当所有给定的可迭代完成时执行 resolve,或者任何 promises 失败时执行 reject。
如果传递任何的 promises rejects ,所有的 Promise 的值立即失败,丢弃所有的其他 promises,如果它们未 resolved。如果传递任意的空数组,那么这个方法将立刻完成。
1) promise all中的每个promise都会被执行
2)此时p的状态就变成rejected
针对你这种情况,恰好我写了个包,https://github.com/zaaack/mon... 应该能满足你的需求