Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript VS代码断点跳转到其他行_Javascript_Node.js_Testing_Visual Studio Code_Jestjs - Fatal编程技术网

Javascript VS代码断点跳转到其他行

Javascript VS代码断点跳转到其他行,javascript,node.js,testing,visual-studio-code,jestjs,Javascript,Node.js,Testing,Visual Studio Code,Jestjs,因为我还没有解决我的另一个问题 我决定使用VS-code调试器。我原以为这会很简单,但在某一行设置断点并运行调试器后,我在另一个地方找到断点图标,代码就停在那里了 My launch.json文件: { "type": "node", "request": "launch", "name": "Jest Current File", "

因为我还没有解决我的另一个问题 我决定使用
VS-code
调试器。我原以为这会很简单,但在某一行设置断点并运行调试器后,我在另一个地方找到断点图标,代码就停在那里了

My launch.json文件:

{
    "type": "node",
    "request": "launch",
    "name": "Jest Current File",
    "program": "${workspaceFolder}/node_modules/jest/bin/jest",
    "args": ["${relativeFile}"]
}
之前:

之后:


知道为什么会发生这种情况吗?

之后使用
.catch()
。然后()
,根据我的经验,由于调用了某个异常而没有调用catch(),所以它不会
.then()
。我曾经使用chai mocha进行过测试,也有同样的问题。尝试添加
.catch()
它将显示您的API可能有错误并达到catch语句。

您可以尝试清理您的工作区并创建一个新的
启动。由于API请求引发了一些错误,json
文件执行不会转到该行。使用catch块处理错误。在catch块中打印错误。您还可以在catch块中为代码添加断点,以检查有关错误的更多详细信息。

我也遇到了同样的问题,我已
更新了
我的VScode,并更改了午餐文件,如下所示:

{
    "type": "node",
    "request": "launch",
    "name": "Jest tests",
    "program": "${workspaceRoot}/node_modules/jest/bin/jest.js",
    "args": ["--verbose", "-i", "--no-cache"],
    "console": "integratedTerminal",
    "internalConsoleOptions": "neverOpen"
}

通常在某些IDE中,断点固定在行号上。因此,如果设置断点后该文件中的代码发生更改,则断点不会移动。所以在做改变的时候,

  • 停止调试模式
  • 做出改变
  • 设置断点
  • 再次启动调试模式。 这对我有用

    • 我只是在用纯摩卡咖啡,所以可能会有点不同。但是我以前已经注意到了这一点,我会在then()中设置一个内联断点(cmd+shift+p-search inline breakpoint)

      这通常发生在断点无法直接到达您试图中断的代码行时。当使用C++或C语言的IDE时,当声明断点时,会看到这一点,因为它们不是实际的代码行。我怀疑这种情况也会发生在你身上,因为你试图打断内联函数的then()部分,但我不是100%确定。看起来你在承诺回调中附加了一个断点。由于断点所在的行(以及
      .then
      回调中的其余行)将在异步操作完成时运行(触发
      .then
      )这是一个愚蠢的问题,所以应该这样做,但您是让程序运行还是单步执行?您应该给承诺足够的时间来解决问题,以便达到断点。放置一些控制台语句可以帮助我们了解代码在到达第二个断点之前正在做什么,以及为什么没有到达第一个断点。控制台是空的使它更具挑战性。FWIW我只是在VS代码中设置笑话和重新布线。我可以在测试或代码中设置一个断点,但当它运行时,它会在整个过程中跳跃,没有任何韵律或理由说明它要去哪里。