nodejs中集成addon本地代码的回调问题
在C++的代码中,回调函数是一个基本的代码调用方式。而在我自己的开发实践中,需要在addon这样一个nodejs的本地化模块中实现一个回调:
基本过程为:
- JS代码会调用一个C++的本地方法,注册一个函数指针到C++本地模块中。
- C++本地方法会调用设备,如平台移动,相机等。这个JS调用的C++本地方法为异步调用,也就是命令下发到设备后就会成功返回。
- 平台移动结束后,会通过第一步中注册的函数指针,调用指定的函数返回结果
- 相机为push模式,会根据相机帧率在固定时间段内返回图像到C++本地模块中,本地模块再通过第一步的函数指针回调到JS处,由JS在浏览器端进行渲染。
在这个过程中,碰到了不少的坑,比如libuv的事件队列阻塞,异