我正在尝试调试一些使用when.js
. 单步执行代码,在某个时间点,我到达了 when.js 本身,然后陷入一长串的内部调用中——承诺履行、排队等。
我有when.js
黑盒,但这似乎并没有太大变化。
我真正想做的是跳到下一个不在黑盒文件中的语句,然后立即停止。有没有办法做到这一点?
如果有人怀疑黑盒脚本确实表现得像这样:
在我的例子中,when.js 使用 browserify 编译到我们的应用程序中,并且我们已经生成了源映射。
我正在尝试调试一些使用when.js
. 单步执行代码,在某个时间点,我到达了 when.js 本身,然后陷入一长串的内部调用中——承诺履行、排队等。
我有when.js
黑盒,但这似乎并没有太大变化。
我真正想做的是跳到下一个不在黑盒文件中的语句,然后立即停止。有没有办法做到这一点?
如果有人怀疑黑盒脚本确实表现得像这样:
在我的例子中,when.js 使用 browserify 编译到我们的应用程序中,并且我们已经生成了源映射。
我真正想做的是跳到下一个不在黑盒文件中的语句,然后立即停止。有没有办法做到这一点?
这正是框架黑盒的设计目的。
我相信这里的问题是 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 上提出功能请求,我将不胜感激。
你能确认我对观察到的行为的理解是正确的吗?