小编zzm*_*zmp的帖子

如何在 Web Worker 中使用 emscripted .js 库

我已将程序编译为单个program.js文件,并在工作程序中调用:

importScripts('program.js');
Module.callMain();
Run Code Online (Sandbox Code Playgroud)

然而,尽管callMain正在执行,但在该函数调用的堆栈中我收到了错误Undefined is not a function

我的预感是我还没有阅读一些必要的emscripten文档、wiki 或源代码。

我知道的:

  • emscripten具有与工作程序一起使用的绑定,但仅当主线程上有 emscripted 进程才能使用这些绑定时(请参阅emscripten.h
  • 为了将任务(在主线程上运行的库内)编译给工作人员,需要在编译时为该任务emcc传递特殊选项(请参阅settings.js

我的猜测是:

  • 我可能需要传递一些标志来让 emcc 知道不要在不存在的对象上调用函数,例如window
  • /dev/tty在查看了与 by 链接的 的实现/dev/stdin以及 的实现之后/dev/stdout,我相信可能会有输出到console,我不认为工作人员支持该输出

我要问的是:

  • 如何在工作人员中使用我的库(单个 js 文件)?
    • 我的库从一个文件加载其他文件program.data(如果这有影响的话)

提前致谢。如果我可以添加任何详细信息,请告诉我。


注意:顶部的代码经过简化 - 它似乎不是语法错误。

更新:

  • stacktrace( Error.stack) 仅告诉我错误发生在Module.callMain. 它没有告诉我任何有关可能导致该问题的导入脚本的信息。:(

javascript web-worker emscripten

5
推荐指数
1
解决办法
1913
查看次数

标签 统计

emscripten ×1

javascript ×1

web-worker ×1