NodeJS 检查器 - 使用 throwOnSideEffect 进行评估,并且 replMode 不返回任何内容

发布于 2025-01-16 06:34:18 字数 1085 浏览 2 评论 0原文

节点:v16.13.1 操作系统:macos 12.2 (Darwin Kernel Version 21.3.0)

以下情况下,evaluate 方法与 replModethrowOnSideEffect 参数一起使用时不起作用任何事物。当单独设置 throwOnSideEffectreplMode 或提供不同的表达式(例如 1+1)时,相同的方法可以完美地工作。评估一个不存在的变量似乎对 NodeJS 没有吸引力。我期待 ReferenceError 结果,但进程只返回 0。

我错误地使用了该函数,或者我错过了某些内容...?

const inspector = require('inspector');

const session = new inspector.Session();
session.connect();

function myEval(expression, throwOnSideEffect, timeout, replMode) {
    session.post(
        'Runtime.evaluate',
        { expression, throwOnSideEffect, timeout, replMode },
        (err, res) => {
            if (err) {
                return console.error('err');
            }
            return console.log('works', res);
        });
}

// does not work as expected when executed alone
myEval('doesNotExist', true, 200, true);

// works as expected
// myEval(exp, true, 200, false);

// works as expected
// myEval(exp, false, 200, true);

Node: v16.13.1 under OS: macos 12.2 (Darwin Kernel Version 21.3.0)

Under the following circumstance, the evaluate method when used with replMode and throwOnSideEffect parameters does not do anything. The same method works perfectly when throwOnSideEffect and replMode are set separately, or when a different expression is provided (such as 1+1). Evaluating a non existing variable seems not being appealing to NodeJS. I am expecting an ReferenceError result but instead the process just returns 0.

I am using the function wrong or I missed something... ?

const inspector = require('inspector');

const session = new inspector.Session();
session.connect();

function myEval(expression, throwOnSideEffect, timeout, replMode) {
    session.post(
        'Runtime.evaluate',
        { expression, throwOnSideEffect, timeout, replMode },
        (err, res) => {
            if (err) {
                return console.error('err');
            }
            return console.log('works', res);
        });
}

// does not work as expected when executed alone
myEval('doesNotExist', true, 200, true);

// works as expected
// myEval(exp, true, 200, false);

// works as expected
// myEval(exp, false, 200, true);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回梦 2025-01-23 06:34:18

将节点升级到版本 v17.7.2 解决了该问题。

Upgrading node to the version v17.7.2 resolved the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文