飞镖到javascript工作者

时间:2013-04-20 11:56:50

标签: javascript dart web-worker

我希望将dart脚本交叉编译为JS,在Web worker中运行。

我的JS脚本应如下所示:

myScript.js

postMessage("I\'m working before postMessage(\'ali\').");

onmessage = function (oEvent) {
  postMessage("Hi " + oEvent.data);
};

如何构建我的dart代码来执行此操作?

将这两个函数直接放在我的javascript顶部非常重要,以便能够在worker中运行。 THX

2 个答案:

答案 0 :(得分:1)

我不确定是否有人曾尝试此操作。所以你应该!

dart.js,启动Dart VM的脚本(如果可用)并设置js-interp,因为很多它访问工作人员不可用的对象,并且因为你没有需要启动VM。

所以我猜你需要做的就是使用dart2js编译代码并直接引用你的工作者调用中的app.dart.js:

new Worker("dart_worker.dart.js");

然后在dart_worker.dart.js中注册window.onMessage个事件并正常致电window.postMessage

希望如果您不使用不允许的DOM对象,例如document,则dart2js不会生成在工作程序中失败的代码。

如果有效,请告诉我们!

答案 1 :(得分:0)

我试过了:

<强> dart_worker.dart

void main() {

  window.onMessage.listen( (event) => onData);

}

void onData(){
  var a = 10 + 25;
}

<强>测试worker.html

<script>
        var a = new Worker('dart_worker.dart.js');
        a.postMessage('yeaaaah');
    </script>

Chrome报告我的dart脚本有脚本错误:未捕获的非法参数:command

我的代码有问题吗?

相关问题