使用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]键盘快捷键。