我希望将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
答案 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
我的代码有问题吗?