3

我正在尝试调试一些使用when.js. 单步执行代码,在某个时间点,我到达了 when.js 本身,然后陷入一长串的内部调用中——承诺履行、排队等。

我有when.js黑盒,但这似乎并没有太大变化。

我真正想做的是跳到下一个不在黑盒文件中的语句,然后立即停止。有没有办法做到这一点?

如果有人怀疑黑盒脚本确实表现得像这样:

在此处输入图像描述

在我的例子中,when.js 使用 browserify 编译到我们的应用程序中,并且我们已经生成了源映射。

4

1 回答 1

2

我真正想做的是跳到下一个不在黑盒文件中的语句,然后立即停止。有没有办法做到这一点?

这正是框架黑盒的设计目的。

我相信这里的问题是 when.js 被编译到你的应用程序中并且调试器无法将其代码识别为黑盒(尽管有误导性警告)。假设您的应用程序的所有源文件(包括 when.js)都编译为 app.js。在这种情况下,在检查页面中没有 when.js 文件这样的东西,因此 JS 执行永远不会在 when.js 的函数上暂停(它总是 app.js)。源映射应用于 UI 级别,一旦您在 app.js 中的某个位置暂停,我们可以将其映射到 when.js 中的相应位置。不过,所有这些都在 DevTools UI 中执行得太晚了。为了支持这一点,我们必须做的是能够只黑箱化与 when.js 的编译源相对应的 app.js 的一部分。DevTools 还不支持这个。如果您可以在 crbug 上提出功能请求,我将不胜感激。

你能确认我对观察到的行为的理解是正确的吗?

于 2015-08-21T17:21:17.703 回答