JavaScript 查看stack trace
<h1 class="grid--cell fs-headline1 fl1 ow-break-word">How can I get a JavaScript stack trace when I throw an exception?</h1><div class="answercell post-layout--right">
<div class="post-text">
<p><strong>Edit 2 (2017):</strong></p>
<p>In all modern browsers you can simply call: <code>console.trace();</code> (MDN Reference)</p>
</div>
</div>
<p> </p>
<p> </p>
<p> </p>
<h1 class="public "><span class="path-divider"><strong>stacktrace.js</strong> </span></h1>
<p><span class="path-divider"><strong><span class="text-gray-dark mr-2">Generate, parse, and enhance JavaScript stack traces in all web browsers <span>https://www.stacktracejs.com/</span></span></strong></span></p>
<p> </p>
<p>Debug and profile your JavaScript with a stack trace of function calls leading to an error (or any condition you specify).</p>
<p>stacktrace.js uses browsers' <code>Error.stack</code> mechanism to generate stack traces, parses them, enhances them with source maps and uses Promises to return an Array of StackFrames.</p>
<p> </p>
<p>bower init</p>
<p>bower install stacktrace-js --save</p>
<p> </p>
<p>或者</p>
<p>https://cdnjs.com/libraries/stacktrace.js 但是这是一个html页面</p>
<h3 class="grid--cell fs-headline1 fl1 ow-break-word">Resource blocked due to MIME type mismatch (X-Content-Type-Options: nosniff)</h3>
<p>Check if the file path is correct and the file exists - in my case that was the issue - as I fixed it, the error disappeared</p>
<p>访问html页面,拿到https://cdnjs.cloudflare.com/ajax/libs/stacktrace.js/2.0.0/stacktrace.js</p>
<p> </p>
<p>获取当前位置的堆栈信息</p>
<h4>Get a stack trace from current location</h4>
<div class="highlight highlight-source-js">
<pre><span class="pl-k">var <span class="pl-en">callback <span class="pl-k">= <span class="pl-k">function(<span class="pl-smi">stackframes) {
<span class="pl-k">var stringifiedStack <span class="pl-k">= <span class="pl-smi">stackframes.<span class="pl-en">map(<span class="pl-k">function(<span class="pl-smi">sf) {
<span class="pl-k">return <span class="pl-smi">sf.<span class="pl-c1">toString();
}).<span class="pl-c1">join(<span class="pl-s"><span class="pl-pds">'<span class="pl-cce">\n<span class="pl-pds">');
<span class="pl-en">console.<span class="pl-c1">log(stringifiedStack);
};
<span class="pl-k">var <span class="pl-en">errback <span class="pl-k">= <span class="pl-k">function(<span class="pl-smi">err) { <span class="pl-en">console.<span class="pl-c1">log(<span class="pl-smi">err.<span class="pl-smi">message); };
<span class="pl-smi">StackTrace.<span class="pl-c1">get().<span class="pl-c1">then(callback).<span class="pl-c1">catch(errback);
<span class="pl-c"><span class="pl-c">//===> Promise(Array, Error)
<span class="pl-c"><span class="pl-c">//===> callback([
<span class="pl-c"><span class="pl-c">// StackFrame({functionName: 'func1', args: [], fileName: 'file.js', lineNumber: 203, columnNumber: 9}),
<span class="pl-c"><span class="pl-c">// StackFrame({functionName: 'func2', args: [], fileName: 'http://localhost:3000/file.min.js', lineNumber: 1, columnNumber: 3284})
<span class="pl-c"><span class="pl-c">//])</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/chucklu/p/11088630.html
頁:
[1]