simple test
This commit is contained in:
@@ -117,16 +117,23 @@ export class PortRPCClient<RPCL extends RPCLists> {
|
||||
public async callFunction<T extends keyof RPCL & string>(name: T, arg: Parameters<RPCL[T]>[0]): Promise<ReturnType<RPCL[T]>> {
|
||||
const id = this.prevID++;
|
||||
|
||||
let done = false;
|
||||
|
||||
const waiter = new Promise((resolve, reject) => {
|
||||
const call: RawRPCCall = [name, id, arg];
|
||||
const callBuffer = ArrayBufferFromString(JSON.stringify(call));
|
||||
|
||||
this.waiters.set(id, [resolve, reject]);
|
||||
done = true;
|
||||
this.port.postMessage(callBuffer, [callBuffer]);
|
||||
});
|
||||
|
||||
await delay(0);
|
||||
|
||||
if(!done){
|
||||
throw new Error("RPC: callFunction failed");
|
||||
}
|
||||
|
||||
return waiter as Promise<ReturnType<RPCL[T]>>;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user