Webpack 为什么chrome开发工具可以';t反映';这';在承诺中正确吗?
我使用Webpack 为什么chrome开发工具可以';t反映';这';在承诺中正确吗?,webpack,google-chrome-devtools,es6-promise,source-maps,Webpack,Google Chrome Devtools,Es6 Promise,Source Maps,我使用webpack来编译我的项目,然后我发现如果有承诺,这个将被编译成\u this2 问题是,当我在promise中设置断点时,这个在chrome开发工具中总是未定义的 是虫子吗?铬开发团队很难解决这个问题吗 现在,源代码: 由网页编译的代码: 因为有一个源代码映射,chrome将为我显示源代码,并且将正确检查承诺之外的 但是,承诺中的此将是未定义的 正如您在将代码编译到es5时所指出的,生成的代码使用\u this技巧从声明上下文中捕获这一点。问题在于,源映射本质上只是文本映射,将一
webpack
来编译我的项目,然后我发现如果有承诺,这个
将被编译成\u this2
问题是,当我在promise中设置断点时,这个
在chrome开发工具中总是未定义的
是虫子吗?铬开发团队很难解决这个问题吗
现在,源代码:
由网页编译的代码:
因为有一个源代码映射,chrome将为我显示源代码,并且将正确检查承诺之外的
但是,承诺中的此
将是未定义的
正如您在将代码编译到es5
时所指出的,生成的代码使用\u this
技巧从声明上下文中捕获这一点。问题在于,源映射本质上只是文本映射,将一段编译后的代码映射回源代码。这意味着Chrome(或任何其他当前调试器)将无法猜测光标下的这个在源代码中具有不同的含义
解决这个问题的一个简单方法是为\u this
(或者在您的例子中为this\u 2
)添加一个手表,它将显示捕获到的范围。开发工具似乎需要某种选项来折叠捕获的范围,特别是当this
未定义时