提交 9bf1bc7a 编写于 作者: C chenyuyan

Signed-off-by: chenyuyan <chenyuyan3@huawei.com>

Change-Id: I14065eb659ff24771e549327a243801eab8979d7
上级 a7ed6c76
......@@ -3834,9 +3834,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
### onRemoteRequest<sup>8+(deprecated)</sup>
> **说明:**
> 从 API Version 9 开始废弃,建议使用[onRemoteRequestEx<sup>9+</sup>](##onremoterequestex)替代。
> <p>开发者同时调用onRemoteRequest和onRemoteRequestEx方法时,仅执行onRemoteRequestEx。</p>
> <p>开发者同时同步调用onRemoteRequest和异步调用onRemoteRequestEx时,仅执行异步调用的onRemoteRequestEx。</p>
><p>依旧支持仅同步调用onRemoteRequest的操作。</p>
onRemoteRequest(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean
......@@ -3892,6 +3890,11 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里处理请
}
```
### onRemoteRequestEx<sup>9+</sup>
> **说明:**
> <p>开发者同时调用onRemoteRequest和onRemoteRequestEx方法时,仅执行onRemoteRequestEx。</p>
> <p>开发者同时同步调用onRemoteRequest和异步调用onRemoteRequestEx时,仅执行异步调用的onRemoteRequestEx。</p>
><p>依旧支持仅同步调用onRemoteRequest的操作。</p>
onRemoteRequestEx(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean | Promise <boolean>
......@@ -3914,7 +3917,7 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里同步或
| Promise <boolean> | 若在onRemoteRequestEx中异步地处理请求,则返回一个Promise对象|
**示例:**
**同步调用示例:**
```
class MyDeathRecipient {
......@@ -3935,7 +3938,6 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里同步或
isObjectDead(): boolean {
return false;
}
// 回调函数为同步
onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: sync onRemoteRequestEx is called");
......@@ -3945,7 +3947,29 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里同步或
return false;
}
}
// 回调函数为异步
}
```
**异步调用示例:**
```
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
}
}
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
isObjectDead(): boolean {
return false;
}
async onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: async onRemoteRequestEx is called");
......@@ -3960,7 +3984,96 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里同步或
}
}
```
**同时调用onRemoteRequest和onRemoteRequestEx进行同步调用示例:**
```
int index = 0;
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
}
}
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
isObjectDead(): boolean {
return false;
}
onRemoteRequest(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: sync onRemoteRequestEx is called");
return true;
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
}
// 同时调用仅会执行onRemoteRequestEx
onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: async onRemoteRequestEx is called");
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
return true;
}
}
```
**同时调用同步的onRemoteRequest和异步的onRemoteRequestEx示例:**
```
int index = 0;
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
}
}
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
isObjectDead(): boolean {
return false;
}
onRemoteRequest(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: sync onRemoteRequestEx is called");
return true;
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
}
// 同时调用仅会执行onRemoteRequestEx
async onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: async onRemoteRequestEx is called");
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
await new Promise((resolve) => {
setTimeout(resolve, 100);
})
return true;
}
}
```
### getCallingUid
getCallingUid(): number
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册