关于鸿蒙napi的异步机制的疑问,执行逻辑是跑在js线程上吗?

各位大佬,

据我理解,js作为一个单线程的语言,高耗时的操作一般都是要异步执行的。鸿蒙的js接口大部分也都是异步的,会带上一个callback的参数。

那么对于callback这种异步模式,底层C++会创建一个aysync work 然后将执行逻辑(耗时部分)和函数执行完成后的逻辑全部都封装进去。然后丢到uv_loop中。

最终调用引擎的loop接口,执行这个work。

我的问题就是,最终执行逻辑是跑在JS runtime线程上吗?如果是,那么假设这部分执行逻辑很复杂,很耗时,不会阻塞JS的runtime吗?

按我理解不是应该仅仅将callback的逻辑封装成async的work推到loop中,而执行逻辑交给底层新创建的线程不是更好吗?

(以上问题是我在audio_standard中render的write接口的时候的疑问。)

关于鸿蒙napi的异步机制的疑问,执行逻辑是跑在js线程上吗?-鸿蒙开发者社区

NAPI,异步机制
2021-11-04 16:28:19
浏览
收藏 2
回答 1
待解决
回答 1
按赞同
/
按时间
红叶亦知秋
2

async 的实现逻辑是js的语言规范规定的,

关于多线程,可以启动多个JS线程或者采用worker的机制。

楼主可以参考:https://www.ecma-international.org/ecma-262/6.0/index.html

分享
微博
QQ
微信
回复
2021-11-10 16:28:30
相关问题
关于ArkTS线程机制怎么样
419浏览 • 2回复 待解决
ArkTS异步机制执行顺序
1348浏览 • 1回复 待解决
openharmony napi 异步耗时阻塞jsui刷新
5435浏览 • 1回复 已解决
js 怎么开启异步线程?
5960浏览 • 1回复 待解决
关于鸿蒙应用开发疑问?
5389浏览 • 1回复 待解决
hello world 鸿蒙os 3.0不起来
2181浏览 • 1回复 待解决
关于逻辑删除问题有懂
2311浏览 • 1回复 待解决
关于鸿蒙camera外设驱动编写疑问
4489浏览 • 1回复 待解决
HarmonyOS 关于deliveryWithInstall疑问
567浏览 • 1回复 待解决
HarmonyOS关于RichText疑问
723浏览 • 1回复 待解决
HarmonyOS 关于手动签名疑问
419浏览 • 1回复 待解决
关于Wearable开发几个疑问
7424浏览 • 2回复 待解决
Worker宿主线程必须线程
367浏览 • 1回复 待解决