4

我正在创建一个用 Dart 编写的 Web 应用程序,它需要创建独立的执行路径,也是用 Dart 编写的。(如果我们不在浏览器中工作,我会称它们为“线程”。)

通常,我会利用 Dart 的(非常强大的)隔离来执行此任务,但我受到限制,因为我需要能够在没有他们合作的情况下随时任意终止这些“线程”中的任何一个。

如果有人好奇,这是因为不受信任的第 3 方代码必须在这些“线程”中运行,如果它们没有响应以及其他原因,我需要能够终止它们。

据我了解,使用 dart:isolate 是不可能的。(正确的?)

无论如何,我已经成功地使用 dart2js 将一些 Dart 代码编译为 Javascript 并在 a 中执行它Worker,但我不知道如何正确调用 postMessage 函数并响应 onmessage 事件,就像我在 JS 中那样。我对 dart2js 的内部进行了一些改动,并设法对其进行了调整(特别是 js_backend 的东西),以便我能够postMessage从我的代码中执行该函数,但是使用 Dart 处理程序响应onmessage事件超出了我的理解dart2js 的工作原理。

我查看了 js.dart 库,但它通过在页面上创建脚本标签来工作,这显然在工作人员中是不可能的。

我知道这是一个非常奇怪的用例,但是有人知道我将如何利用 dart2js 的内部来响应和回复给工作人员的消息吗?

4

1 回答 1

3

Worker课程似乎支持您想要的。

于 2014-09-14T14:40:58.857 回答