Visual Studio 2017中的JavaScript代理(节点)在调试时会导致阻塞



我正在开发带有节点v6.10.1的Visual Studio 2017中的节点应用程序/游戏。我正在尝试使用ECMA 2015代理对象。只要没有围绕代理创建或某些代理呼叫(例如get())设置的断点,代理对象就可以按预期工作。我想知道,(1)其他人是否经历过/解决了此问题,(2)如果以后的Node/vs 2017发生这种情况。

示例代码:

    var realObject = { answer: 42, question: undefined };
//  Setting breakpoint on following line will cause blocking on Node thread.
    var proxy = (function (_this) {
        var _proxy =  new Proxy(_this, {
            get: function(target, property, receiver) {
               // Breakpoint on line below also causes blocking on Node thread
               return _this[property];
            },
            has: function (target, prop) {
                return prop in _this;
            }
        });
        return _proxy;
    })(realObject);

没有错误,如果您将断点删除,则代码可以按预期工作。这不是一场演出者,但很烦人,使故障排除更加困难。如果有帮助,我可以升级节点,但我正在尝试针对较旧版本来确保兼容性。

任何帮助都非常感谢!

我终于屈服并升级到节点8.9.3,这似乎已经解决了问题。我可以设置断点并恢复而无需任何阻塞问题:p

我注意到Visual Studio启动了一些我没有注意到的交换机,这可能与此有关:

node --inspect --debug-brk

最新更新