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

Debugging Techniques in JavaScript. Async Callbacks

本文关键字:异步 回调 技术 调试 JavaScript      更新时间:2023-09-26

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

我只是试着在Chrome中浏览代码,但代码似乎在跳来跳去,也许它同时处理不同的回调?

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

您可以向fetch()函数添加堆栈跟踪,并查看从何处调用它。JS有许多不错的堆栈跟踪实现。我在埃里克·温德林的版本,但还有很多其他版本。

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