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.RemoteProxy和ohos.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