gpt4 book ai didi

javascript - 在 Dart 中编写 WebWorker(没有 dart :isolate)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:02:34 27 4
gpt4 key购买 nike

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

通常,我会利用 Dart 的(非常强大的)isolate 来执行此任务,但我受到限制,因为我需要能够在任何时候任意终止任何这些“线程”,而无需它们的合作。

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

据我所知,使用 dart:isolate 是不可能的。 (对吗?)

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

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

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

最佳答案

Worker类似乎支持你想要的东西。

关于javascript - 在 Dart 中编写 WebWorker(没有 dart :isolate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18790349/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com