|
@@ -137,13 +137,17 @@ 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)
|
|
|
- resolve(e.data.value)
|
|
|
+ if (e.data.error) {
|
|
|
+ reject(e.data.error)
|
|
|
+ } else {
|
|
|
+ resolve(e.data.value)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -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
|
|
|
+ )
|
|
|
})
|
|
|
})
|
|
|
}
|