JavaScript中的调试技术.异步回调
Debugging Techniques in JavaScript. Async Callbacks
在我正在开发的现有Backbone/jQuery/CoffeeScript应用程序中,似乎有一个函数(Backbone.Collection.fetch()
)被调用了多次(有时数字可能会有所不同)。我认为这可能是一个时间问题,因为我正在做很多嵌套回调(如AJAX等),而且它变得很难调试。我可能应该尝试将代码转换为使用jQuery deferred,但同时,我能做什么?
我只是试着在Chrome中浏览代码,但代码似乎在跳来跳去,也许它同时处理不同的回调?
我在想,也许我会为每个函数及其参数添加一个console.log,但肯定有更好的方法吗?
您可以向fetch()
函数添加堆栈跟踪,并查看从何处调用它。JS有许多不错的堆栈跟踪实现。我在埃里克·温德林的版本,但还有很多其他版本。
通过堆栈跟踪,也许您至少可以看到该函数中最常见的路径,这可能有助于缩小搜索范围。它甚至可能会明确潜在的罪魁祸首。
相关文章:
- Meteor:异步回调问题
- JavaScript中的异步回调
- 如何将此异步回调转换为生成器
- 在Nodejs中堆叠异步回调事件的最佳方式
- 从异步回调中获取值
- jasmine 2-在jasmine指定的超时时间内未调用异步回调.DEFAULT_TIMEOUT_INTERVAL
- 将数据注入异步回调(使用 node.js)
- 由于异步回调,变量被覆盖
- 管理Meteor中的异步回调
- 如何等到异步回调完成后才能使用检索到的数据
- Node.JS函数返回异步回调函数的值
- 将Node REPL调整为不阻塞异步回调的提示
- 如何正确地将异步回调与react中的表单操作连接起来
- 返回异步回调作为最佳实践
- 使用其他模块中的函数,避免异步回调地狱
- Node.js:异步回调混淆
- JavaScript中的调试技术.异步回调
- Javascript OOP-在异步回调中丢失了这一点
- 在 JavaScript 中的异步回调函数中访问“this”
- 异步回调后返回