throw new Error
和使用Meteor.Error()
之间有什么区别?是仅仅在服务器上显示throw new Error
不会显示给客户端(客户端将获得500内部服务器错误);并且Meteor.Error
将被发送给客户。
还有其他差异吗?例如。是否会突破Fibers,停止下游代码?
答案 0 :(得分:0)
Meteor.Error的主要内容就像你提到的那样
Accounts.onLoginAttempt
等钩子中隐藏)[Object object]
作为从普通错误中显示的原因,Meteor.wrapAsync
除此之外,Meteor.Error
是Error
的一个子类,并且有上述变化。
所以他们都会停止下游代码。说到光纤,如果普通的光纤以任何方式被抛出光纤,它可能会阻止你的应用(在服务器端而不是method
,startup
,{{1 },Meteor.setInterval
等)
它的定义也很小:https://github.com/meteor/meteor/blob/devel/packages/meteor/errors.js