gpt4 book ai didi

javascript - 在 IntelliJ 或 WebStorm 中使用生成器调试 JS 的更好方法

转载 作者:搜寻专家 更新时间:2023-10-31 22:48:00 25 4
gpt4 key购买 nike

我正在使用 Koa 框架在 Node JS 中开发一个网络应用程序。

所有的流程控制都是用生成器完成的,而不是回调。代码看起来是顺序的,但实际流程并非如此。不管怎样,它看起来比回调 hell 要干净得多。

这是一个用 koa 编写的 Controller 函数的简单示例:

function *findUserById(userId)
{
var user = yield getUserOrError404(userId);
yield loadAdditionalData(user);
yield data.users.save(user);
return user;
}

但是有一个困难:在我的 IDE (IntelliJ IDEA) 中使用 yield 单步执行代码并不是很好。一旦执行与 yield 语句一致,如果我只是“跨步”,执行流程就会上升到堆栈到 koa 代码(这并不是 IDE 的错,因为它只是遵循生成器、yield 语句和 Node 事件循环的实际执行流程。

目前我必须为我希望调试器暂停的下一条语句设置断点,通常是下一行,然后单击“恢复程序”按钮。

当有超过 2-3 个 yield 语句时,它会变得乏味。

是否有更好的方法(技巧、插件等)来单步执行大量生成器的 JS 代码,从而允许单步执行 yield 语句,就好像它是一个“正常”的顺序语句一样?

最佳答案

听起来像是 Run To Cursor 命令的工作 - 它像轻量级断点一样有效地运行,在执行到光标当前所在的行后被删除。

参见 this gist对于您可以用于此的按钮的屏幕截图,以及我用来检查它是否有效的测试工具文件(它确实有效;至少在 PhpStorm 中,所以我希望 WebStorm 就 JS 而言功能相同) .

编辑:它在 IntelliJ 中也能完美运行。除了屏幕截图中显示的按钮外,您还可以通过右键单击该行然后单击上下文菜单中的“运行到光标”来触发它。或者 [alt]+[F9] 键盘快捷键。

关于javascript - 在 IntelliJ 或 WebStorm 中使用生成器调试 JS 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32426638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com