HarmonyOS try catch是异步执行吗?
这边获取dic,try catch里面的aaid和versionCode都是在最后返回dic之后才获取到,要如何才能拿到之后再进行返回?
代码如下:
async function getHeaderDic() {
try {
let headerDic = new HashMap<string , string>()
let dateStr = ''
try {
let time = systemDateTime.getTime(false)
console.info('时间为:',time);
dateStr = getTimeToYYYYDDMMHHMMSS(time)
console.info('时间戳为:',dateStr);
} catch(e) {
console.info(`Failed to get currentTime. message: ${e.message}, code: ${e.code}`);
}
//获取版本号
let versionCode = ''
// 更改
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA;
try {
bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
versionCode = data.versionName.toString();
console.info('versionCode版本号为:.',versionCode)
headerDic.set('osVersion',versionCode);
})
} catch (err) {
}
let versionId = deviceInfo.versionId;
headerDic.set('osType','01');
headerDic.set('appVersion', versionId);
let aaid = ''
try {
AAID.getAAID((err: BusinessError, data: string) => {
if (err) {
hilog.error(0x0000, 'Get AAID failed: %{public}d %{public}s', err.code, err.message);
} else {
hilog.info(0x0000, 'Get AAID successfully: %{public}s', data);
aaid = data;
headerDic.set('dvImei', aaid);
}
});
} catch (err) {
let e: BusinessError = err as BusinessError;
hilog.error(0x0000, 'Get AAID catch error: %{public}d %{public}s', e.code, e.message);
}
let random18Str : number = Math.ceil((Math.pow(10, 18) - 1) * Math.random());
console.info('生成的18位随机数字段.',random18Str.toString())
headerDic.set('nonceStr',dateStr + random18Str.toString());
headerDic.set('txnTm',dateStr);
headerDic.set('appChlNo','04');
console.info('abc1234,,,,,,',headerDic)
return headerDic
} catch (err) {
console.info('abc1234',err)
return ''
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
Code Linter 报try catch的err不能是any或者unknown
2045浏览 • 1回复 待解决
#鸿蒙通关秘籍#在鸿蒙开发中如何使用try/catch来处理异步操作中的异常?
520浏览 • 1回复 待解决
try catch语法中error对象有没有类型支持
2106浏览 • 1回复 待解决
HarmonyOS linter检测:async函数中的try/catch的return问题
160浏览 • 1回复 待解决
“netAvailable”执行的时候“netConnectionPropertiesChange”一定会执行吗
1864浏览 • 1回复 待解决
HarmonyOS catch error问题
393浏览 • 1回复 待解决
UIAbility的onDestroy()函数是同步的,怎么保证异步方法执行完
2251浏览 • 1回复 待解决
HarmonyOS async异步函数中的.catch中打的hilog.fatal没打开限流开关无法打印
265浏览 • 1回复 待解决
ArkTS异步机制与执行顺序
2046浏览 • 1回复 待解决
HarmonyOS TaskPool当执行的函数是个异步函数时就没有返回值
270浏览 • 1回复 待解决
用鸿蒙的SDK 生成了可执行程序,能在鸿蒙系统里 ./ 运行吗? 没有执行权限
1181浏览 • 1回复 待解决
代码中做阻塞式的耗时操作,会影响其它任务的执行吗
1069浏览 • 1回复 待解决
关于鸿蒙napi的异步机制的疑问,执行逻辑是跑在js线程上吗?
8202浏览 • 1回复 待解决
动态import是异步的,同步和异步场景如何使用
689浏览 • 0回复 待解决
页面aboutToAppear方法执行时,执行Promise任务查询请求服务器,如果耗时过长,里面的内容还会执行吗
2226浏览 • 1回复 待解决
HarmonyOS relationalStore.RdbStore.commit是异步的吗
158浏览 • 1回复 待解决
HarmonyOS h264/h265软解是在CPU运行吗
232浏览 • 1回复 待解决
HarmonyOS 开发者如何自主判断是异步接口?
295浏览 • 1回复 待解决
HarmonyOS在异步线程往主线程抛任务无法被执行
600浏览 • 1回复 待解决
HarmonyOS hdc shell aa force stop是同步还是异步
147浏览 • 1回复 待解决
ArkTS 的异步编程模型是如何实现的?
441浏览 • 0回复 待解决
XHR使用POST提交方式异步导致js代码提前执行
2239浏览 • 1回复 待解决
HarmonyOS 后台短时任务,执行一半,程序检测到时间可能不够用,能切换为长时任务继续执行吗
233浏览 • 1回复 待解决
HarmonyOS ArkTS开发中,异步回调,怎么切到主线程执行呢
1168浏览 • 1回复 待解决
通过Redis作为中间缓存,Redis数据更新后再通过消息机制异步更新数据库,这样可行吗?
2501浏览 • 1回复 待解决
getBundleInfoForSelf和getAAID都是异步方法,可以使用 await 实现同步,如下: