从堆栈跟踪中删除调用

时间:2017-01-16 12:01:28

标签: javascript node.js v8

我叫命令:

arguments.callee

我收到错误:

(node:1956) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
(node:1956) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

我对如何使用arguments.callee感到有些困惑?

我想做什么?我正在尝试操纵堆栈跟踪。我想删除最新的函数调用(如果可能的话?)。

我读过https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee但它并没有让我更聪明。

1 个答案:

答案 0 :(得分:0)

“修改”调用堆栈的唯一方法是调用函数并从函数返回。

您看到的错误是由您在严格模式下运行的代码引起的。这意味着你在这个函数的范围内有"use strict"。目前还不清楚你是否真的需要使用它,不管你想做什么。

如果你试图将当前的调用堆栈作为字符串进行一些修改,那么你可以对字符串进行修改,而不是在调用堆栈上进行修改:

var stack = Error().stack; // ... modify stack