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
赞
收藏 0
回答 1
待解决
相关问题
ArkTs中异步方法如何转变成同步方法
2099浏览 • 0回复 待解决
api异步方法提供同步api需求
49浏览 • 1回复 待解决
JS中如何使用Promise和async await
494浏览 • 1回复 待解决
Promise 与 Async/Await 的比较
308浏览 • 1回复 待解决
用户认证同步效果,用户认证是异步方法,对于使用的时候很不友好,可以通过这种方法,去实现同步效果
568浏览 • 1回复 待解决
HarmonyOS 如何将一个异步的方法包装成同步的方法,在程序中顺序执行?
246浏览 • 1回复 待解决
HarmonyOS异步await不起作用
245浏览 • 1回复 待解决
C++同步调ArkTS里面的方法
933浏览 • 1回复 待解决
HarmonyOS 回调函数,有没有办法将异步改为同步,有样例吗
475浏览 • 1回复 待解决
如何将this的指向改为方法外
286浏览 • 1回复 待解决
动态import是异步的,同步和异步场景如何使用
212浏览 • 0回复 待解决
如何选择使用同步接口还是异步接口
2000浏览 • 1回复 待解决
UIAbility的onDestroy()函数是同步的,怎么保证异步方法执行完
1905浏览 • 1回复 待解决
如何对异步方法进行插桩/替换
577浏览 • 1回复 待解决
HarmonyOS ArkWeb onLoadIntercept 方法异步扩展支持
122浏览 • 1回复 待解决
HarmonyOS Image组件能调用异步方法吗?
99浏览 • 1回复 待解决
如何在Native侧调用ArkTS侧异步方法,并获取异步计算结果到Native侧
2307浏览 • 1回复 待解决
在@watch中使用异步方法后UI反应慢
290浏览 • 1回复 待解决
HarmonyOS async/await promise是在哪个线程,如何判断主线程还是子线程
340浏览 • 1回复 待解决
des解密同步方法解密失败
34浏览 • 1回复 待解决
napi方法能否使用async?
246浏览 • 1回复 待解决
无网络环境下使用同步方法获取网络状态报错
423浏览 • 1回复 待解决
taskpool异步任务支持串行处理的方法
877浏览 • 1回复 待解决
Native如何调ArkTS的方法
2047浏览 • 1回复 待解决
数据库操作同步的方法
1676浏览 • 1回复 待解决
可以尝试worker参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-worker-V5#onmessage9