[英]Is there a way to fake a synchronous XHR request?
我正在使用Emscripten系统将一堆C ++代码移植到Javascript。 C ++代码对fopen
有很多调用,这是一个同步IO调用。 在Emscripten,我们模拟这种使用XHR请求本地资源不过 ,Firefox同步XHR调用内(用responseType
的blob
或arraybuffer
)仅一个网络工作者中支持。 转换所有c ++代码以适应异步IO代码似乎非常复杂,所以对于我的第一次尝试,我想看看我是否可以伪造同步XHR请求。
我最初的想法是,主循环可以与web-worker共享一些状态,这可以进行同步io调用并在主循环暂停并等待web-worker完成时更新共享状态。 免责声明:我知道这不是典型的Javascript方式,但我正在移植同步代码,而不是从头开始编写新代码(我肯定会使用异步IO)。
鉴于web-worker和main-loop之间共享状态的限制,这个想法看起来站不住脚。
还有其他方法吗?
因此,在看到所有答案并做了一些自己的阅读之后,看起来最好的答案是:“你可以,但只能用于文本数据,你必须将其转换回二进制数据”。 这很慢,但确实有效。
你有没有看过像qunit和sinon这样的测试库? 我认为Jasmine也可以做到,但我知道sinon可以做到这一点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.