1e41f4b71Sopenharmony_ci# ChangeLog
2e41f4b71Sopenharmony_ci##### 关键的接口/组件变更
3e41f4b71Sopenharmony_ci## 进程间通信子系统
4e41f4b71Sopenharmony_ci#### cl.rpc.1 sendRequest返回值类型变更
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci##### 变更影响
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_cijs的RemoteProxy和RemoteObject的sendRequest变更为异步接口,返回Promise,兑现值是SendRequestResult的实例。原有应用需要适配。
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci##### 关键的接口/组件变更
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci```
13e41f4b71Sopenharmony_ci模块:ohos.rpc.IRemoteObject, ohos.rpc.RemoteProxyohos.rpc.RemoteObject
14e41f4b71Sopenharmony_ci接口:sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci变更后接口:
17e41f4b71Sopenharmony_cisendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise<SendRequestResult>
18e41f4b71Sopenharmony_ci```
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci**适配指导**
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci```
23e41f4b71Sopenharmony_ciimport rpc from "@ohos.rpc"
24e41f4b71Sopenharmony_ciimport FA from "@ohos.ability.featureAbility";
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_cilet proxy;
27e41f4b71Sopenharmony_cilet connect = {
28e41f4b71Sopenharmony_ci    onConnect: function(elementName, remoteProxy) {
29e41f4b71Sopenharmony_ci        console.log("RpcClient: js onConnect called.");
30e41f4b71Sopenharmony_ci        proxy = remoteProxy;
31e41f4b71Sopenharmony_ci    },
32e41f4b71Sopenharmony_ci    onDisconnect: function(elementName) {
33e41f4b71Sopenharmony_ci        console.log("RpcClient: onDisconnect");
34e41f4b71Sopenharmony_ci    },
35e41f4b71Sopenharmony_ci    onFailed: function() {
36e41f4b71Sopenharmony_ci        console.log("RpcClient: onFailed");
37e41f4b71Sopenharmony_ci    }
38e41f4b71Sopenharmony_ci};
39e41f4b71Sopenharmony_cilet want = {
40e41f4b71Sopenharmony_ci    "bundleName": "com.ohos.server",
41e41f4b71Sopenharmony_ci    "abilityName": "com.ohos.server.MainAbility",
42e41f4b71Sopenharmony_ci};
43e41f4b71Sopenharmony_ciFA.connectAbility(want, connect);
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_cilet option = new rpc.MessageOption()
46e41f4b71Sopenharmony_cilet data = rpc.MessageParcel.create()
47e41f4b71Sopenharmony_cilet reply = rpc.MessageParcel.create()
48e41f4b71Sopenharmony_ciproxy.sendRequest(1, data, reply, option)
49e41f4b71Sopenharmony_ci	.then(function(result) {  
50e41f4b71Sopenharmony_ci		console.info("send request done")
51e41f4b71Sopenharmony_ci		if (result.errCode === 0) {
52e41f4b71Sopenharmony_ci			// read result from result.reply
53e41f4b71Sopenharmony_ci		}
54e41f4b71Sopenharmony_ci	})
55e41f4b71Sopenharmony_ci	.catch(function(e) {
56e41f4b71Sopenharmony_ci		console.error("send request failed: " + e)
57e41f4b71Sopenharmony_ci	})
58e41f4b71Sopenharmony_ci	.finally(() => {
59e41f4b71Sopenharmony_ci		data.reclaim()
60e41f4b71Sopenharmony_ci		reply.reclaim()
61e41f4b71Sopenharmony_ci	})
62e41f4b71Sopenharmony_ci```
63e41f4b71Sopenharmony_ci
64