JavaScript中的调试技术。异步回调

时间:2012-07-10 01:44:21

标签: javascript jquery debugging asynchronous coffeescript

在我正在使用的现有Backbone / jQuery / CoffeeScript应用程序中,似乎有一个多次调用的函数(Backbone.Collection.fetch())(有时数字可能会有所不同)。我认为这可能是一个时间问题,因为我正在做大量的嵌套回调(如AJAX等),并且它变得难以调试。我应该尝试将代码转换为使用jQuery延迟,但同时,我该怎么办?

刚尝试浏览Chrome中的代码,但似乎代码在这里跳跃,也许它同时处理不同的回调?

我想也许我会为每个函数及其参数添加一个console.log,但是必须有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以向该fetch()函数添加堆栈跟踪,并查看它的调用位置。 JS有许多不错的堆栈跟踪实现。我取得了很大的成功 Eric Wendelin's version,但有plenty of others

使用堆栈跟踪,也许您至少可以看到该函数中最常见的路径,这可能有助于缩小搜索范围。它甚至可以明确潜在的罪魁祸首。