:thinking_face: What if we made it an Error again?
This commit is contained in:
parent
1dea186a6e
commit
9a2d103e7f
1 changed files with 22 additions and 1 deletions
|
@ -112,6 +112,16 @@ const webFrameMethods = [
|
||||||
]
|
]
|
||||||
const webFrameMethodsWithResult = []
|
const webFrameMethodsWithResult = []
|
||||||
|
|
||||||
|
const errorConstructors = {
|
||||||
|
Error,
|
||||||
|
EvalError,
|
||||||
|
RangeError,
|
||||||
|
ReferenceError,
|
||||||
|
SyntaxError,
|
||||||
|
TypeError,
|
||||||
|
URIError
|
||||||
|
}
|
||||||
|
|
||||||
const asyncWebFrameMethods = function (requestId, method, callback, ...args) {
|
const asyncWebFrameMethods = function (requestId, method, callback, ...args) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this.send('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', requestId, method, args)
|
this.send('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', requestId, method, args)
|
||||||
|
@ -119,9 +129,20 @@ const asyncWebFrameMethods = function (requestId, method, callback, ...args) {
|
||||||
if (error == null) {
|
if (error == null) {
|
||||||
if (typeof callback === 'function') callback(result)
|
if (typeof callback === 'function') callback(result)
|
||||||
resolve(result)
|
resolve(result)
|
||||||
|
} else {
|
||||||
|
if (error && error.__ELECTRON_SERIALIZED_ERROR__) {
|
||||||
|
let rehydratedError = error
|
||||||
|
|
||||||
|
if (errorConstructors[error.name]) {
|
||||||
|
rehydratedError = new errorConstructors[error.name](error.message)
|
||||||
|
rehydratedError.stack = error.stack
|
||||||
|
}
|
||||||
|
|
||||||
|
reject(rehydratedError);
|
||||||
} else {
|
} else {
|
||||||
reject(error)
|
reject(error)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue