mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
backport: handle async stacktraces correctly (#2768)
This commit is contained in:
@@ -23,11 +23,25 @@ class RESTManager {
|
||||
}
|
||||
|
||||
push(handler, apiRequest) {
|
||||
// Preserve async stack
|
||||
let stackTrace = null;
|
||||
if (Error.captureStackTrace) {
|
||||
stackTrace = {};
|
||||
Error.captureStackTrace(stackTrace, this.makeRequest);
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
handler.push({
|
||||
request: apiRequest,
|
||||
resolve,
|
||||
reject,
|
||||
reject: error => {
|
||||
if (stackTrace && (error instanceof Error)) {
|
||||
stackTrace.name = error.name;
|
||||
stackTrace.message = error.message;
|
||||
error.stack = stackTrace.stack;
|
||||
}
|
||||
reject(error);
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user