【问题标题】:How to debug a value from a function if it is called inside return statement?如果在 return 语句中调用函数,如何调试函数中的值?
【发布时间】:2020-07-23 17:08:58
【问题描述】:

如果函数在返回语句中,我想知道如何从函数中获取值。 例如,我有以下功能;

function a () {
    return b(); // How to know the value returning from b() if I put the debuger in this line??
}

如果我在 return 语句中放置一个调试器,它会进入该行,但是当我按 F10 时,它已经返回并且我看不到显示的值。如何在更改页面之前获取此值?

作为一种解决方法,我目前正在做的是在返回之前创建一个附加行:

const result = b(); return result;

但是,这是一种变通方法,很难做到所有事情,因为代码中有数千行这样的行,并且每次我都需要在将代码提交到生产环境之前更改回之前的状态,否则就是不接受。

【问题讨论】:

  • 也许你可以改用const result = b(); return result; 2 行,所以你会在名为result 的变量中看到。
  • 是的,我知道,但这是一种解决方法。在发送到生产环境之前,我必须将代码更改回之前的状态,否则将无法通过审核。
  • 我怀疑你不能,因为那是一个单一的陈述。你需要一个临时变量(你正在做什么)或者可能是一个监视表达式(虽然我猜这会执行该函数两次)之类的解决方法。

标签: javascript node.js debugging visual-studio-code vscode-debugger


【解决方案1】:

你需要单步进入b()函数,F11

【讨论】:

  • 好的,但是如果我按 F11 的那个函数也返回一个函数怎么办?之后的那个,以此类推,当它最终进入一个 node_module 并且它会一直持续下去。
  • 一旦它在“return b()”处中断,在 b() 内的一行设置断点并点击继续。
  • 或者如果你想知道 b() 会返回什么,你可以只突出显示 b() 并选择 Evaluate
  • 我的意思是函数 b() 可以有一个 return c() 作为他的返回状态,那么我也需要在里面按 F11
【解决方案2】:

有不同的方法可以从函数返回值,它们是指针、结构和数组。 在这种情况下,您必须执行一个函数并向调用函数返回一个值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多