To return data asynchronously, set async in onRemoteMessageRequest() of the server. For details, see the code example of overloading onRemoteMessageRequest to process requests asynchronously.
Sample code:
import { rpc } from '@kit.IPCKit';
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor: string) {
super(descriptor);
}
async onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): Promise<boolean> {
if (code === 1) {
console.log("RpcServer: async onRemoteMessageRequest is called");
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
await new Promise((resolve: (data: rpc.RequestResult) => void) => {
setTimeout(resolve, 100);
})
return true;
}
} Reference