这是我想向各位天才程序员们总结的问题:我有一个用 C++ 编写的自定义 Web 容器,可以与 javascript 通信。从 C++ 到 JS 可以做同步 JS 函数调用 从 JS 到 C++ 它可以做异步 C++ 函数调用
使用这些工具,我必须进行从 JS 到 C++ 的同步调用......因为我不能使用消息通信系统(因为它意味着主线程上的异步性,除非我错过了什么),我的第一个猜测是使用工作线程
“main.js”文件
var synctools = false;
var syncdata ="";
var myworker=new worker("demo_workers.js");
while(synctool == false){} //It s ugly but i haven t had any other ideas
“demo_workers.js”文件
CallCPPFile(param,callback); //call the c++ and c++ call callback when finished
function callback(data)
{
//do stuff
syncdata = data;
synctools = true; //this is supposed to stop the looping of the main js
}
不幸的是,工作线程无法访问同步工具和同步数据。所以这里有几个问题:
- 工作线程和主线程之间还有另一种通信方法吗?我曾尝试使用导航器对象,但它似乎也不起作用(我不知道两个线程之间的导航器对象是否相同)
- 除了网络工作者,你还有其他方法可以实现我的目标吗?(我也尝试过承诺但没有运气)
谢谢你的帮助