xP: only care about RPC results if requested
This prevents "No response" errors from firing for most commands.
This commit is contained in:
parent
919b12510b
commit
1f0e0b1ce4
@ -4,7 +4,7 @@ import * as Relay from './proto.js'
|
|||||||
|
|
||||||
// ---- RPC --------------------------------------------------------------------
|
// ---- RPC --------------------------------------------------------------------
|
||||||
|
|
||||||
class RelayRpc extends EventTarget {
|
class RelayRPC extends EventTarget {
|
||||||
constructor(url) {
|
constructor(url) {
|
||||||
super()
|
super()
|
||||||
this.url = url
|
this.url = url
|
||||||
@ -72,7 +72,7 @@ class RelayRpc extends EventTarget {
|
|||||||
if (this.promised[e.commandSeq] !== undefined)
|
if (this.promised[e.commandSeq] !== undefined)
|
||||||
this.promised[e.commandSeq].reject(e.error)
|
this.promised[e.commandSeq].reject(e.error)
|
||||||
else
|
else
|
||||||
console.error("Unawaited error")
|
console.error(`Unawaited error: ${e.error}`)
|
||||||
break
|
break
|
||||||
case Relay.Event.Response:
|
case Relay.Event.Response:
|
||||||
if (this.promised[e.commandSeq] !== undefined)
|
if (this.promised[e.commandSeq] !== undefined)
|
||||||
@ -109,9 +109,16 @@ class RelayRpc extends EventTarget {
|
|||||||
seq = this.commandSeq = 0
|
seq = this.commandSeq = 0
|
||||||
|
|
||||||
this.ws.send(JSON.stringify({commandSeq: seq, data: params}))
|
this.ws.send(JSON.stringify({commandSeq: seq, data: params}))
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this.promised[seq] = {resolve, reject}
|
// Automagically detect if we want a result.
|
||||||
})
|
let data = undefined
|
||||||
|
const promise = new Promise(
|
||||||
|
(resolve, reject) => { data = {resolve, reject} })
|
||||||
|
promise.then = (...args) => {
|
||||||
|
this.promised[seq] = data
|
||||||
|
return Promise.prototype.then.call(promise, ...args)
|
||||||
|
}
|
||||||
|
return promise
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,7 +180,7 @@ function updateIcon(highlighted) {
|
|||||||
|
|
||||||
// ---- Event processing -------------------------------------------------------
|
// ---- Event processing -------------------------------------------------------
|
||||||
|
|
||||||
let rpc = new RelayRpc(proxy)
|
let rpc = new RelayRPC(proxy)
|
||||||
let rpcEventHandlers = new Map()
|
let rpcEventHandlers = new Map()
|
||||||
|
|
||||||
let buffers = new Map()
|
let buffers = new Map()
|
||||||
|
Loading…
Reference in New Issue
Block a user