mirror of
https://github.com/electron/electron.git
synced 2026-01-25 23:38:18 -05:00
Allow web frame methods to return async promises
This commit is contained in:
committed by
Kevin Sawicki
parent
cf0cd5b50b
commit
124fbdbd74
@@ -39,7 +39,13 @@ electron.ipcRenderer.on('ELECTRON_INTERNAL_RENDERER_SYNC_WEB_FRAME_METHOD', (eve
|
||||
|
||||
electron.ipcRenderer.on('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', (event, requestId, method, args) => {
|
||||
const responseCallback = function (result) {
|
||||
event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, result)
|
||||
Promise.resolve(result)
|
||||
.then((resolvedResult) => {
|
||||
event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, resolvedResult)
|
||||
})
|
||||
.catch((resolvedError) => {
|
||||
console.error(`An async web frame method (${method}) returned a promise that threw an error: `, resolvedError)
|
||||
})
|
||||
}
|
||||
args.push(responseCallback)
|
||||
electron.webFrame[method].apply(electron.webFrame, args)
|
||||
|
||||
Reference in New Issue
Block a user