callsites
接到电话 V8堆栈跟踪API
安装
npm install callsites
用法
import callsites from 'callsites';
function unicorn() {
console.log(callsites()[0].getFileName());
//=> '/Users/sindresorhus/dev/callsites/test.js'
}
unicorn();
API
返回具有以下方法的callsite对象数组:
getThis:返回的值this。getTypeName的类型this作为字符串。的构造函数字段中存储的函数名称this,否则为对象的[[Class]]内部属性。getFunction:返回当前函数。getFunctionName:返回当前函数的名称,通常是它的name财产。如果name属性不可用,将尝试从函数的上下文中推断出名称。getMethodName的属性名this或者是拥有当前功能的原型机之一。getFileName:如果此函数在脚本中定义,则返回该脚本的名称。getLineNumber:如果此函数在脚本中定义,则返回当前行号。getColumnNumber:如果此函数在脚本中定义,则返回当前列号getEvalOrigin:如果这个函数是通过调用创建的eval返回一个表示位置的字符串eval被称为。isToplevel:返回true如果这是一个顶级调用,也就是说,如果它是一个全局对象。isEval:返回true如果此调用发生在调用定义的代码中eval。isNative:返回true如果这个调用是在原生V8代码中。isConstructor:返回true如果这是一个构造函数调用。isAsync():返回true如果这个调用是异步的(即await,Promise.all(),或Promise.any()).isPromiseAll():返回true如果这是一个异步调用Promise.all()。getPromiseIndex():返回后面的promise元素的索引Promise.all()或Promise.any()对于异步堆栈跟踪,或null如果CallSite不是异步的Promise.all()或Promise.any()呼叫。