使用IntelliJ或WebStorm中的生成器来debuggingJS的更好方法
我正在使用Koa框架在Node JS中的webapp上工作。
所有的stream量控制都是用发生器完成的,而不是callback。 代码看起来是连续的,但实际stream程不是。 无论如何,它看起来更清洁,callback地狱。
下面是一个用koa编写的控制器函数的简单例子:
function *findUserById(userId) { var user = yield getUserOrError404(userId); yield loadAdditionalData(user); yield data.users.save(user); return user; }
但是有一个难点:在我的IDE(IntelliJ IDEA)中单步执行代码,并不能很好地工作。 一旦执行结果与yield
语句一致,如果我只是“跳过”,执行stream就会上升到koa代码堆栈(这实际上不是IDE的错误,因为它只是遵循生成器的实际执行stream程,yield语句和Node事件循环)。
目前我必须为下一个语句设置一个断点,我希望debugging器暂停下一行,然后点击“Resume program”button。
当产量超过2-3的时候可能变得乏味。
有没有更好的方法(技巧,插件,…)来通过发电机沉重的JS代码,允许越过一个yield语句,就像它是一个“正常”顺序语句?
听起来像Run To Cursor
命令的一个工作 – 它像一个轻量级的断点那样有效地运行,在执行到达光标当前所在的行之后被删除。
看到这个要点的屏幕截图,你可以使用这个和一个testing用具文件,我用来检查这是否工作(它确实;至less在PhpStorm,所以我希望WebStormfunction相同,尽可能JS被关注到)。
编辑:它也适用于IntelliJ。 除了在屏幕截图中显示的button之外,还可以通过右键单击行来触发它,然后在上下文菜单中单击“运行到光标”。 或[alt] + [F9]键盘快捷键。