10

当我尝试使用transform-async-to-generatorbabel 插件使用 async/await 调试代码时,我的调试体验参差不齐(尽管我几乎尝试了所有其他组合)。

本质上,带有 await 的代码将跳到方法的末尾,然后进入已编译的代码。视频

export class Cat {
    async meow(){
        let p = await this.bat(); // <<<< this line runs
        this.fart(); // <<<< then skips this line
        return p;  // <<<< and goes to this line ( always last line in fn )
    }
}

如果您查看为该函数生成的代码:

meow() {
    var _this = this;

    return _asyncToGenerator(function* () {
        let p = yield _this.bat();
        _this.fart();
        return p;
    })();
}

难怪关于结果,但源地图应该处理这个,对吧?

我已经尝试了各种设置(需要钩子/babel-node/babel cli/gulp babel)并遇到同样的问题。我正在使用:节点 5.3.0 和 Babel 6.3

我在github上创建了一个演示项目。我还在babel 线程上发布了这个问题。

编辑: 这个问题是针对 source-maps 项目提出的,因为我不认为这是一个 babel 问题。团队承认该问题是调试器问题。有关更多详细信息,请参阅:github问题

4

1 回答 1

0

随着async/awaitNode 4+ 中原生的引入,这不再是一个问题。

于 2017-01-05T13:02:58.173 回答