问题标签 [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.
dart - 在 Dart 中跟踪 Isolate 状态的最佳方法是什么?
我正在尝试使用isolate.addOnExitListener(...)跟踪隔离当前是否正在运行(以及将来是否出错)。但是,以下代码片段无法按我的预期工作:
“items”映射包含 3 个值,每个值都有不同的名称:item1、item2、item3
当我运行此代码时,我得到的唯一输出是:“Item exited: item3”
我期望以下输出(不一定按顺序,因为隔离是异步的):“项目退出:项目 1”“项目退出:项目 2”“项目退出:项目 3”
这是在隔离区中运行的代码:
似乎关闭正在丢失。我在这里做错了吗?有没有更好的方法来跟踪隔离的状态?
提前致谢!
dart - 如何使用多个隔离来服务请求
如何设置 Dart 服务器以使用所有可用的核心来处理即将到来的请求(例如,通过使用多个隔离来服务请求)?
dart - 如何为 spawnUri 动态构建 Dart 脚本?
我想动态构造和加载一个 Dart 脚本。我该怎么做呢?
我知道我可以使用 Isolate.spawnUri 来动态加载 Dart 脚本。但是,我只知道我可以从 file: 和 http: URI 加载。这意味着我需要将我的脚本放在某个地方以进行加载,这是我想避免的复杂情况。
dart - 如何在主要分离物中使用来自不同分离物的结果?
我对 Dart 和编程都很陌生。我正在尝试使用隔离在 Dart 中开发一个命令行程序。我的目的是将它的性能与同一个程序进行比较,但它是用 Java 编写的,带有线程。
到目前为止,Dart 程序看起来像这样:
主要.dart
/li>我的隔离.dart
/li>
输出如下所示:
如您所见,每个隔离的返回值是在主隔离完成执行之后出现的。我想要的是主要使用隔离的结果来进一步计算。
我不知道我错过了什么。我敢肯定这是非常愚蠢的事情,但我无法在这个问题上继续前进。在 Java 中获取每个线程的结果值很简单,但在 Dart 中我不知道如何在隔离中做到这一点。
有任何想法吗?
dart - 在单个异步函数中封装对同一个 Dart 隔离的重复发送/响应
是否可以在单个异步函数中封装对同一个 dart 隔离的重复发送/响应?
背景:
为了设计一个方便的API,我想让一个函数异步返回一个隔离生成的结果,例如
如果我直接使用 spawnUri 调用生成的响应,这很好用,例如
然而,上述方法的缺点是,如果我需要重复调用 askIsolate,则每次都必须生成隔离。
相反,我想与正在运行的隔离进行通信,这当然可以通过让隔离返回一个 sendPort 给调用者来实现。但我相信自2013 年 Isolate 重构以来 ,这需要调用者在 receivePort 上收听后续消息,从而无法将封装在单个异步函数中。
是否有一些我缺少的机制来实现这一点?
dart - Dart:如何在导入的包中指定 Isolate URI?
我已经编写了一些代码,我想在一个包中提供它,但我也想将它作为工人公开给包消费者。为此,我创建了一个包装类,它在内部运行隔离并使用发送命令和侦听器与隔离通信以提供功能。
当我想从bin
orweb
目录中使用这个包装类时,问题就出现了:Uri
提供的是从 running/main 的目录Isolate
而不是从包根目录插入的。因为bin
它是packagename|bin/
,因为web
它是packagename|web
。
我想将这个类导出给消费者,这样他们就可以选择一种比自己构建更简单的方法Isolate
,但我不确定如何指定将在 spawnUri 中使用的主文件。
有没有办法指定文件,所以无论主 Isolate 从哪里运行,它总是被解析为正确的文件。
结构:
谢谢。
dart - 我想使用 dart 在浏览器上显示来自 mysql 数据库的数据
我正在做学校项目,它需要在浏览器中显示一些来自 mysql 数据库的简单数据。我读过,SQLJocky 在浏览器中不起作用,所以我决定让它像服务器客户端应用程序并在服务器端运行 db(在这里获得灵感:https ://dart-lang.github.io/server/codelab /)。但它没有用,无法创建带有消息的客户端 api:
有谁知道如何解决这个问题,或者如何以不同的方式从浏览器中的数据库获取数据?
添加的代码包含来自 SQLJocky 的内容:
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) 不会发生这种情况。
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 使用不同的可执行文件或选项?
dart - Dart:在隔离中使用 JsObject 和窗口 API
我在使用 Dart 中的隔离物时遇到了一些困难。第一个问题是我想使用 dart:js 在我的一个隔离中使用 javascript 库。我尝试使用以下代码:
代码在 runCode 函数中运行到“仍然可以...”,并在我尝试使用 JsObject 时中断。
第二个问题是我想在隔离中使用文件系统 API。所以我尝试了以下方法:
当我到达文件系统时,第二个示例会中断。
我已阅读:Dart : Isolate 在使用 html 导入时不起作用,从这里它表明 dart:html 不能在隔离中使用。这是文件系统 API 不起作用的原因吗?dart:js 也是这样吗?还是我完全错过了什么?
谢谢你的帮助!