问题标签 [dart-isolates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2510 浏览

dart - 在 Dart 中跟踪 Isolate 状态的最佳方法是什么?

我正在尝试使用isolate.addOnExitListener(...)跟踪隔离当前是否正在运行(以及将来是否出错)。但是,以下代码片段无法按我的预期工作:

“items”映射包含 3 个值,每个值都有不同的名称:item1、item2、item3

当我运行此代码时,我得到的唯一输出是:“Item exited: item3”

我期望以下输出(不一定按顺序,因为隔离是异步的):“项目退出:项目 1”“项目退出:项目 2”“项目退出:项目 3”

这是在隔离区中运行的代码:

似乎关闭正在丢失。我在这里做错了吗?有没有更好的方法来跟踪隔离的状态?

提前致谢!

0 投票
1 回答
442 浏览

dart - 如何使用多个隔离来服务请求

如何设置 Dart 服务器以使用所有可用的核心来处理即将到来的请求(例如,通过使用多个隔离来服务请求)?

0 投票
1 回答
398 浏览

dart - 如何为 spawnUri 动态构建 Dart 脚本?

我想动态构造和加载一个 Dart 脚本。我该怎么做呢?

我知道我可以使用 Isolate.spawnUri 来动态加载 Dart 脚本。但是,我只知道我可以从 file: 和 http: URI 加载。这意味着我需要将我的脚本放在某个地方以进行加载,这是我想避免的复杂情况。

0 投票
2 回答
1389 浏览

dart - 如何在主要分离物中使用来自不同分离物的结果?

我对 Dart 和编程都很陌生。我正在尝试使用隔离在 Dart 中开发一个命令行程序。我的目的是将它的性能与同一个程序进行比较,但它是用 Java 编写的,带有线程。

到目前为止,Dart 程序看起来像这样:

  1. 主要.dart

    /li>
  2. 我的隔离.dart

    /li>

输出如下所示:

如您所见,每个隔离的返回值是在主隔离完成执行之后出现的。我想要的是主要使用隔离的结果来进一步计算。

我不知道我错过了什么。我敢肯定这是非常愚蠢的事情,但我无法在这个问题上继续前进。在 Java 中获取每个线程的结果值很简单,但在 Dart 中我不知道如何在隔离中做到这一点。

有任何想法吗?

0 投票
3 回答
342 浏览

dart - 在单个异步函数中封装对同一个 Dart 隔离的重复发送/响应

是否可以在单个异步函数中封装对同一个 dart 隔离的重复发送/响应?

背景:

为了设计一个方便的API,我想让一个函数异步返回一个隔离生成的结果,例如

如果我直接使用 spawnUri 调用生成的响应,这很好用,例如

然而,上述方法的缺点是,如果我需要重复调​​用 askIsolate,则每次都必须生成隔离。

相反,我想与正在运行的隔离进行通信,这当然可以通过让隔离返回一个 sendPort 给调用者来实现。但我相信自2013 年 Isolate 重构以来 ,这需要调用者在 receivePort 上收听后续消息,从而无法将封装在单个异步函数中。

是否有一些我缺少的机制来实现这一点?

0 投票
1 回答
141 浏览

dart - Dart:如何在导入的包中指定 Isolate URI?

我已经编写了一些代码,我想在一个包中提供它,但我也想将它作为工人公开给包消费者。为此,我创建了一个包装类,它在内部运行隔离并使用发送命令和侦听器与隔离通信以提供功能。

当我想从binorweb目录中使用这个包装类时,问题就出现了:Uri提供的是从 running/main 的目录Isolate而不是从包根目录插入的。因为bin它是packagename|bin/,因为web它是packagename|web

我想将这个类导出给消费者,这样他们就可以选择一种比自己构建更简单的方法Isolate,但我不确定如何指定将在 spawnUri 中使用的主文件。

有没有办法指定文件,所以无论主 Isolate 从哪里运行,它总是被解析为正确的文件。

结构:

谢谢。

0 投票
1 回答
435 浏览

dart - 我想使用 dart 在浏览器上显示来自 mysql 数据库的数据

我正在做学校项目,它需要在浏览器中显示一些来自 mysql 数据库的简单数据。我读过,SQLJocky 在浏览器中不起作用,所以我决定让它像服务器客户端应用程序并在服务器端运行 db(在这里获得灵感:https ://dart-lang.github.io/server/codelab /)。但它没有用,无法创建带有消息的客户端 api:

有谁知道如何解决这个问题,或者如何以不同的方式从浏览器中的数据库获取数据?

添加的代码包含来自 SQLJocky 的内容:

0 投票
1 回答
61 浏览

dart - 导入 postgresql 包时工作包失效

我正在尝试使用 Worker 包和 PostgreSQL 包。

我不知道为什么,但如果我在 https://diegorochablog.wordpress.com/2014/02/18/worker-dart-concurrent-programming-does-not-have-to-be-hard/运行示例除了添加一条import语句之外什么都没有改变:import 'package:postgresql/postgresql.dart';,该示例停止工作(execute未调用该任务)。

Dart VM 版本:“macos_x64”上的 1.17.0-dev.4.1(2016 年 5 月 19 日星期四 11:21:39)。

发布规范.yaml

更新

显然,稳定版本的 Dart (1.16.0) 不会发生这种情况。

0 投票
0 回答
48 浏览

dart - 使用 spawnUri 禁用 dart 单元测试的安全性到 localhost

我正在尝试对依赖 spawnURI 的代码进行单元测试,以隔离在 localhost 上的单独端口上运行的隔离(不是自包含的,我意识到)。

pub run test -pchrome通过yield运行测试SecurityError: Failed to construct 'Worker': Script at 'http://localhost:8064/test.isolate.dart.js' cannot be accessed from origin 'http://localhost:38643'. 测试在 vm/dartium 中运行良好。

是否有任何 dart/pub 方法可以在禁用安全性的情况下运行浏览器测试?我知道我可以别名/覆盖每个平台可执行文件或代理隔离,但是有没有办法指示 pub test 使用不同的可执行文件或选项?

0 投票
1 回答
115 浏览

dart - Dart:在隔离中使用 JsObject 和窗口 API

我在使用 Dart 中的隔离物时遇到了一些困难。第一个问题是我想使用 dart:js 在我的一个隔离中使用 javascript 库。我尝试使用以下代码:

代码在 runCode 函数中运行到“仍然可以...”,并在我尝试使用 JsObject 时中断。

第二个问题是我想在隔离中使用文件系统 API。所以我尝试了以下方法:

当我到达文件系统时,第二个示例会中断。

我已阅读:Dart : Isolate 在使用 html 导入时不起作用,从这里它表明 dart:html 不能在隔离中使用。这是文件系统 API 不起作用的原因吗?dart:js 也是这样吗?还是我完全错过了什么?

谢谢你的帮助!