我有一个像这样的JavaScript代码:
_.each(node.readLines, function(line) {
// Mark read-lines
start = line;
that._editor.session.addGutterDecoration(start - 1, 'editor_read_decoration');
that._gutterDecorations[start - 1] = 'editor_read_decoration';
});
当使用Chrome调试它时,调试器会迭代这个_.each
函数的循环,尽管node.readLines
有五个元素。它只是停留在_.each
,下一步它将在这个_.each
声明之后进入下一个声明而不进入它。当然,_.each
中的语句是执行的,但是在后台。如果我单击chrome调试器的“step into”或“step over”命令,它没有任何区别。我意识到我总是使用这个_.each
函数。如何调试此函数内的语句并遍历node.readLines
的所有迭代?
如果你使用Step Into
,你应该在lodash或underscore.js中进入_.each()
的实现。如果它被最小化,那么代码将无法读取。在进入迭代函数之前,你必须在代码中做一些额外的步骤,你也需要在那里使用Step Into
。
我通常做的调试这样的代码是在回调函数的第一行设置一个断点。