HarmonyOS ArkTS如何不使用await/async把异步方法改为同步方法?

现有的H5有些交互方法需要触发到原生端执行(其中包括异步方法),并将结果返回给H5,交互方法为同步,在HarmonyOS侧实现时,针对异步方法(比如getCurrentBundleStats方法只提供了异步方法),要加await才行,但这样会改变方法,得把同步的方法改为异步,请问有没有其他方法?

checkDataInfo(brokerBridge): string { 
   const methodA = Reflect.get(brokerBridge, 'getDeviceInfoA'); 
   if (typeof methodA === 'function') { 
     let params: string | null = null; 
     const resultA = methodA.call(brokerBridge, params); 
     console.log(resultA); 
   } 
   let resultDataB = ''; 
   const methodB = Reflect.get(brokerBridge, 'getDeviceInfoB'); 
   if (typeof methodB === 'function') { 
     let params: string | null = null; 
     const resultB = methodB.call(brokerBridge, params); 
     if (Promise.resolve(resultB) === resultB) { 
       console.log('Promise对象'); 
       // 不能使用await,会让checkDataInfo变为异步 
       resultB.then((result: string) => { 
         console.log(result); 
         //todo 如何返回resultDataB值(不能将checkDataInfo方法改成异步) 
         resultDataB = result; 
       }); 
     } else { 
       console.log('非Promise对象'); 
       return resultB; 
     } 
   } 
   // 如何等待resultDataB被赋值 
   return resultDataB; 
 }
HarmonyOS
2024-11-04 11:56:07
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get
分享
微博
QQ
微信
回复
2024-11-04 16:10:56
相关问题
ArkTs异步方法如何转变成同步方法
2189浏览 • 0回复 待解决
api异步方法提供同步api需求
121浏览 • 1回复 待解决
JS中如何使用Promise和async await
543浏览 • 1回复 待解决
Promise 与 Async/Await 的比较
354浏览 • 1回复 待解决
C++同步ArkTS里面的方法
972浏览 • 1回复 待解决
HarmonyOS异步await不起作用
322浏览 • 1回复 待解决
如何将this的指向改为方法
362浏览 • 1回复 待解决
如何选择使用同步接口还是异步接口
2055浏览 • 1回复 待解决
如何异步方法进行插桩/替换
604浏览 • 1回复 待解决
HarmonyOS Image组件能调用异步方法吗?
142浏览 • 1回复 待解决
在@watch中使用异步方法后UI反应慢
334浏览 • 1回复 待解决
Native如何ArkTS方法
2108浏览 • 1回复 待解决
des解密同步方法解密失败
99浏览 • 1回复 待解决
taskpool异步任务支持串行处理的方法
924浏览 • 1回复 待解决
数据库操作同步方法
1736浏览 • 1回复 待解决