mirror of https://github.com/logseq/logseq
fix: reject promise on child error
So that the we won't await infinitely. Fixes #10107pull/10121/head
parent
474360ff1e
commit
bba8aa5729
|
@ -137,15 +137,19 @@ export class ParentAPI {
|
|||
}
|
||||
|
||||
get(property, ...args) {
|
||||
return new Promise((resolve) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
// Extract data from response and kill listeners
|
||||
const uid = generateNewMessageId()
|
||||
const transact = (e) => {
|
||||
if (e.data.uid === uid && e.data.postmate === 'reply') {
|
||||
this.parent.removeEventListener('message', transact, false)
|
||||
if (e.data.error) {
|
||||
reject(e.data.error)
|
||||
} else {
|
||||
resolve(e.data.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Prepare for response from Child...
|
||||
this.parent.addEventListener('message', transact, false)
|
||||
|
@ -245,6 +249,17 @@ export class ChildAPI {
|
|||
},
|
||||
e.origin
|
||||
)
|
||||
}).catch((error) => {
|
||||
;(e.source as WindowProxy).postMessage(
|
||||
{
|
||||
property,
|
||||
postmate: 'reply',
|
||||
type: messageType,
|
||||
uid,
|
||||
error,
|
||||
},
|
||||
e.origin
|
||||
)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue