taskpool 执行的 async 函数和普通返回 promise 函数的一些差异问题
当前模拟器(4.1.0.56)表现:
1. 对于一个内部实现 return 一个值的 async 函数 fun3,taskpool.execute 可以正常执行并通过返回的 promise 拿到返回值
2. 对于一个内部实现 return 一个 Promise 的 async 函数 fun4,taskpool.execute 执行失败,promise catch err: Can’t return Promise in pending state
3. 对于一个内部实现 return 一个 Promise 的 async 函数 fun5,taskpool.execute 可以正常执行并通过返回的 promise 拿到返回值
是否从 Promise 和 async 函数的规范来说,三者应该表现一致才对,尤其1 & 2,理论上语义不应该有任何区别?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS Promise函数返回值问题
1505浏览 • 1回复 待解决
HarmonyOS TaskPool当执行的函数是个异步函数时就没有返回值
1148浏览 • 1回复 待解决
HarmonyOS 每秒执行一次的函数
1518浏览 • 2回复 待解决
关于鸿蒙和uboot间的一些问题
10347浏览 • 2回复 待解决
View的引用和实例化的一些问题
1209浏览 • 1回复 待解决
关于designWidth的一些问题
1614浏览 • 1回复 待解决
HarmonyOS linter检测:async函数中的try/catch的return问题
770浏览 • 1回复 待解决
HarmonyOS 页面路由和命名路由的一些问题
2206浏览 • 1回复 待解决
HarmonyOS 页面路由和命名路由的一些问题?
1092浏览 • 0回复 待解决
函数返回类型设定为Promise,内部实现return this.a?.fun()
2380浏览 • 1回复 待解决
HarmonyOS hiAppEvent的一些相关问题咨询
884浏览 • 1回复 待解决
关于快速修复的一些问题。
1769浏览 • 1回复 待解决
关于鸿蒙BLE的一些问题
5371浏览 • 1回复 待解决
HarmonyOS 关于VPN的一些使用问题?
5021浏览 • 1回复 待解决
docker 线上使用的一些问题
3615浏览 • 1回复 待解决
一些帐号授权相关问题
9909浏览 • 2回复 待解决
DevEco Studio 升级后的一些问题
11308浏览 • 1回复 待解决
HarmonyOS 有关Video组件的一些问题
1402浏览 • 1回复 待解决
HUAWEI DevEco Device Tool的一些问题
9920浏览 • 3回复 待解决
关于华为应用级AT的一些问题
13183浏览 • 3回复 待解决
HarmonyOS 调用napi_resolve_deferred后的代码,和promise.then中的回调函数哪个会先执行呢
740浏览 • 1回复 待解决
HarmonyOS 使用taskpool执行task后,返回的结果没有通过Promise返回主线程,有什么定位方法吗?
1050浏览 • 1回复 待解决
HarmonyOS TaskPool不能访问全局常量和全局函数吗
586浏览 • 1回复 待解决
如何在taskpool的线程调用类的成员函数
1974浏览 • 1回复 待解决
HarmonyOS中页面路由和命名路由的一些问题,需要咨询?
1077浏览 • 0回复 待解决
1.Promise返回了一个promise对象,由于返回前有await关键字,会等待promise的resolve后返回,由于await后Promise已经resolve,此时返回值是number。async函数又会返回一个promise对象,此对象会在执行taskpool的callback函数返回结果
2.Promise返回了一个promise对象,async函数又会返回一个promise对象,返回结果变成了Promise<Promise<number>>,两层promise会导致序列化失败报错
3.Promise返回了一个promise对象,会等待promise的resolve后返回执行taskpool的callback函数返回结果
对于1 & 2差异在于多返回了一层promise对象,返回时导致序列化失败报错;callback函数会在promise对象返回resolve或者reject后返回结果