【发布时间】:2017-10-12 01:53:26
【问题描述】:
我在以下代码的第 44 行 debugger; 中添加了一个断点。我希望 chrome 每次在执行 console.log("...") 之前都会停在那里。但令我惊讶的是,它只停止了一次。
测试示例:
- 在 Chrome 中运行下面的 sn-p
- 打开 Chrome 开发工具
- 在拖放区域中从另一个网站拖动图像
此时chrome在断点处停止。但是,如果您查看控制台,您应该会看到 console.log 语句又被执行了两次。
我想知道为什么会这样。 (线程问题??)
如果我想在这一行调试代码,我该如何解决这个问题。
$(document).ready(function() {
$('#drop-area').on("dragover", function(event) {
event.preventDefault();
event.stopPropagation();
$(this).addClass('dragging');
});
$('#drop-area').on("dragleave", function(event) {
event.preventDefault();
event.stopPropagation();
$(this).removeClass('dragging');
});
$('#drop-area').on("drop", function(event) {
event.preventDefault();
event.stopPropagation();
var count = 1;
var dropObj = event.originalEvent.dataTransfer;
for (var i = 0; i < dropObj.items.length; i++) {
var aDropItm = dropObj.items[i];
if (aDropItm.kind == "file") {
//ignore
} else {
aDropItm.getAsString(function(_str) {
debugger; //The debugger should stop here every time before the string is printed to the console
console.log("This was called [" + count++ + "] times");
});
}
}
});
});
#drop-area {
background-color: red;
width: 400px;
height: 400px;
}
<div id="drop-area">Drop files here...</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
编辑
我在这里将其报告为错误:
https://bugs.chromium.org/p/chromium/issues/detail?id=748923
【问题讨论】:
-
在the Chromium buglist 的快速搜索中发现的唯一错误与源地图 (ex) 相关,而这里没有发挥作用。如果没有人指出我们遗漏了一些明显的东西,那么可能值得在那里报告。如果这是优化的结果,我不会感到惊讶,尽管看到代码中使用
debugger;语句进行了优化是令人惊讶的。 -
我不确定这是我的错误还是错误。如果我没有找到解决方案,我会将其发布在错误列表中。
-
在此处添加指向 chrome 错误的链接,以便其他人可以找到它:) 它甚至可能被视为“答案”
标签: javascript google-chrome debugging google-chrome-devtools