1

我们正在使用 RequireJS 和 Node 构建一个项目,并在服务器端和客户端重用模块。到目前为止一切都很好(需要解决一些小问题)。

一个问题似乎是延迟回调中的错误永远不会显示在节点控制台中(或以任何其他方式显示)。使调试变得非常困难。

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 返回一个延迟对象,并且回调被正常调用 - 但是没有显示与 undefined 有关的错误消息(评估模块时节点报告一般语法错误)。

我们使用 jsdom 和 jquery 在服务器端为浏览器引导内容。然后将 jquery 从 jsdon 传递给大多数方法 - 所以用于 loadOrganization 的延迟对象是来自 jQuery 通过 jsdom 的对象。然而,从 npm installed jquery 将 deferred used 更改为 one 并没有什么区别。

任何建议都会有所帮助,当没有打印错误时很难调试。

4

1 回答 1

1

弄清楚了,这是我们在服务器端的 Backbone.Sync 实现中的一个疯狂的 try/catch 语句。这意味着通过 API 的任何东西(几乎是任何东西)都被 try/catch 捕获,该 try/catch 将错误传递给 Backbone.Sync 错误回调,并且再也没有收到任何消息。

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

于 2012-05-13T16:08:42.680 回答