mirror of
https://github.com/danbulant/discord.js
synced 2026-06-07 00:32:03 +00:00
backport: handle async stacktraces correctly (#2768)
This commit is contained in:
parent
f5b3dff7f5
commit
dc8cf08de9
1 changed files with 15 additions and 1 deletions
|
|
@ -23,11 +23,25 @@ class RESTManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
push(handler, apiRequest) {
|
push(handler, apiRequest) {
|
||||||
|
// Preserve async stack
|
||||||
|
let stackTrace = null;
|
||||||
|
if (Error.captureStackTrace) {
|
||||||
|
stackTrace = {};
|
||||||
|
Error.captureStackTrace(stackTrace, this.makeRequest);
|
||||||
|
}
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
handler.push({
|
handler.push({
|
||||||
request: apiRequest,
|
request: apiRequest,
|
||||||
resolve,
|
resolve,
|
||||||
reject,
|
reject: error => {
|
||||||
|
if (stackTrace && (error instanceof Error)) {
|
||||||
|
stackTrace.name = error.name;
|
||||||
|
stackTrace.message = error.message;
|
||||||
|
error.stack = stackTrace.stack;
|
||||||
|
}
|
||||||
|
reject(error);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue