在延迟callback时不会抛出/显示错误

我们正在用RequireJS和Node构build一个项目,并重用服务器和客户端的模块。 到目前为止,这是相当不错的(一些小小的纠结)。

一个问题似乎是延迟callback中的错误不会显示在节点控制台中(或者以任何其他方式)。 debugging非常困难。

asdasdasd(); // Throws error, function is undefined, as intended this.loadOrganization(organization_key, true).then(function(org) { asdasdasd(); // No error anywhere, script just stops executing }); 

loadOrganization返回一个延迟对象,并且调用callback被调用 – 但是没有显示与undefined有关的错误消息(当评估模块时,通常的语法错误是由节点报告的)。

我们使用jsdom和jquery在服务器端引导浏览器的内容。 然后将jquery从jsdon传递给大多数方法 – 所以用于loadOrganization的延迟对象是jQuery通过jsdom的。 然而,从npm安装的jquery中将延迟改为1是没有区别的。

任何build议都是有帮助的,当没有打印错误时,很难debugging。

想通了,在我们的Backbone.Sync实现在服务器端是一个疯狂的try / catch语句。 这就意味着任何通过API的东西(几乎所有的东西)都被try / catch抓到了,这个try / catch把错误传递给了Backbone.Sync错误callback函数,而且再也没有被听到。

故事的道德; 如果没有输出错误,请仔细查看Try / Catches的代码。