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 ''
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
HarmonyOS
赞
收藏 0
回答 1
相关问题
Code Linter 报try catch的err不能是any或者unknown
2569浏览 • 1回复 待解决
#鸿蒙通关秘籍#在鸿蒙开发中如何使用try/catch来处理异步操作中的异常?
1498浏览 • 1回复 待解决
try catch语法中error对象有没有类型支持
2830浏览 • 1回复 待解决
HarmonyOS linter检测:async函数中的try/catch的return问题
567浏览 • 1回复 待解决
“netAvailable”执行的时候“netConnectionPropertiesChange”一定会执行吗
2310浏览 • 1回复 待解决
UIAbility的onDestroy()函数是同步的,怎么保证异步方法执行完
2790浏览 • 1回复 待解决
ArkTS异步机制与执行顺序
3144浏览 • 1回复 待解决
HarmonyOS catch error问题
850浏览 • 1回复 待解决
HarmonyOS TaskPool当执行的函数是个异步函数时就没有返回值
854浏览 • 1回复 待解决
HarmonyOS async异步函数中的.catch中打的hilog.fatal没打开限流开关无法打印
633浏览 • 1回复 待解决
用鸿蒙的SDK 生成了可执行程序,能在鸿蒙系统里 ./ 运行吗? 没有执行权限
1608浏览 • 1回复 待解决
代码中做阻塞式的耗时操作,会影响其它任务的执行吗
1422浏览 • 1回复 待解决
页面aboutToAppear方法执行时,执行Promise任务查询请求服务器,如果耗时过长,里面的内容还会执行吗
2817浏览 • 1回复 待解决
关于鸿蒙napi的异步机制的疑问,执行逻辑是跑在js线程上吗?
8875浏览 • 1回复 待解决
HarmonyOS在异步线程往主线程抛任务无法被执行
1172浏览 • 1回复 待解决
动态import是异步的,同步和异步场景如何使用
1239浏览 • 0回复 待解决
XHR使用POST提交方式异步导致js代码提前执行
2692浏览 • 1回复 待解决
HarmonyOS h264/h265软解是在CPU运行吗
943浏览 • 1回复 待解决
HarmonyOS ArkTS开发中,异步回调,怎么切到主线程执行呢
1881浏览 • 1回复 待解决
HarmonyOS 后台短时任务,执行一半,程序检测到时间可能不够用,能切换为长时任务继续执行吗
814浏览 • 1回复 待解决
HarmonyOS 开发者如何自主判断是异步接口?
819浏览 • 1回复 待解决
HarmonyOS relationalStore.RdbStore.commit是异步的吗
784浏览 • 1回复 待解决
ArkTS 的异步编程模型是如何实现的?
1077浏览 • 0回复 待解决
#鸿蒙学习大百科#ArkTS有全局强制切换线程执行吗? 以及相对应调度的接口吗?
713浏览 • 1回复 待解决
HarmonyOS hdc shell aa force stop是同步还是异步
602浏览 • 1回复 待解决
getBundleInfoForSelf和getAAID都是异步方法,可以使用 await 实现同步,如下: