gpt4 book ai didi

javascript - 是否可以从不同的线程调用 JS 函数?

转载 作者:行者123 更新时间:2023-11-30 04:34:42 24 4
gpt4 key购买 nike

我正在尝试使用 JS window.external 通过 native 代码主机 (C++) 使 2 个不同的浏览器相互通信。

语法是这样的:

在 destination.js 上:

window.external.register("dest", eventCallbak);  
function eventCallback(senderID, data) {
alert("message recieved from " + senderID + " with data of " + data);
}

在 source.js 上:

window.external.sendMsg("source", "dest", "Hello dest! this is source...");

我已经设法同步执行此操作,方法是保存 eventCallback 参数,将其另存为 IDispatch 并在询问时调用它(全部在同一个线程中)。没有问题。

当尝试异步执行时,麻烦就开始了,这意味着 - 将 eventCallback 保存为一个线程上的 IDispatch,稍后在另一个线程中调用它,导致调用方法失败,HRESULTE_UNEXPECTED

有什么想法吗?

谢谢,

最佳答案

两个浏览器实例使用不同的 JS VM 实例。通常,您不能从一个 VM/堆中取出一个对象并将其传递给另一个 VM/堆。

所以你需要在这里发明某种编码。

关于javascript - 是否可以从不同的线程调用 JS 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5825928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com