dart-async相关内容

如何将多个流合并为更高级别的流?

我有两个流,Stream 和 Stream.我有一个 C 类型的构造函数,它接受一个 A 和一个 B.如何将两个 Stream 合并成一个 Stream? 解决方案 您可以在 package:async 中使用 StreamZip 将两个流组合成一对流,然后从中创建 C 对象. import "package:async" show StreamZip;...流 CcreateCs(St ..
发布时间:2021-12-11 16:21:54 其他开发

有没有办法取消飞镖未来?

在 Dart 用户界面中,我有一个按钮 [提交] 来启动一个长异步请求.[submit] 处理程序返回一个 Future.接下来,按钮 [提交] 被按钮 [取消] 替换,以允许取消整个操作.在 [cancel] 处理程序中,我想取消长时间操作.如何取消提交处理程序返回的 Future?我没有找到这样做的方法. 解决方案 据我所知,没有办法取消 Future.但是有一种方法可以取消 Stre ..
发布时间:2021-12-11 15:49:40 其他开发

扑扑团块,以及团块状态变化如何才能在同时更新Widget/UI之前触发第二次异步调用?(附加代码)

如何从(基于)“设置"的flutter_bloc状态更改触发来加载一组本地图像以显示在小部件中(注意这是异步的-参见下面的功能)?注意此块也通过hydrated_bloc持续存在.因此,我要问如何在flutter中编写代码的用例(注意我正在使用flutter_bloc)是: 用例-在同一个小部件上渲染不同的图像集,以便动态显示2D点和2D的空间点击冒险型游戏,基于用户进入的“房间".房间变化 ..
发布时间:2021-04-28 19:31:20 其他开发

在StatefulWidget&中的项目数组作为状态确保"setState"只触发已更改数组中项目的更新?

背景-希望为StatefulWidget使用项目的动态列表.在我的用例中,小部件将调用CustomePainter(画布),因此有时会在画布上绘制不同数量的图像,因此父级StatefulWidget内希望有一个“图像数组". 问题-如果使用数组作为状态变量,我需要以编程方式(如果有的话)执行什么操作,以确保只有在数组中发生更改的项目才真正得到“重绘",特别是在这种情况下在画布上. (也 ..
发布时间:2021-04-28 19:29:01 其他开发

如何等待直到将图像加载到Dart中

我有一些基本的代码可以加载一些精灵图像,我正在使用Future.wait等到两个图像都加载完毕.但是,这仍然不是我真正想做的,因为我想在退出之前为成员分配图像的宽度和高度. SpaceShip(this.x,this.y){火箭=新的ImageElement(src:"nofire.png");firingRockets = new ImageElement(src:"fire.png");v ..
发布时间:2021-04-28 19:22:19 其他开发

如何避免每次导航到页面时都重新加载数据

我正试图避免在扑朔迷离中重建 FutureBuilder .我已经尝试过在下面的Q中建议的解决方案. 如何仅在Flutter中解析JSON 将Flutter切换到Tab重新加载小部件并运行FutureBuilder 每次我导航至该页面时,我的应用仍会触发API.请指出我要去哪里了. 实用程序飞镖 //函数调用API端点并返回列表中的FutureEmpNetworkUtil ..
发布时间:2021-04-28 19:11:12 其他开发

Dart事件队列和微任务

我试图了解dart事件循环的工作原理.我从事件循环和Dart 网站上阅读了事件循环文章,作者对此进行了解释很好,dart中的事件循环如何工作. 但是我不明白的是,事件如何排队.例如 新Future(()=> 21).then((v)=> v * 2).then((v)=> print(v)); 在这里,dart会在事件队列中创建三个条目还是仅创建一个?我知道,Future类负责延迟执行 ..
发布时间:2021-04-28 19:00:40 其他开发

等待未来完成

我使用postgres数据库查询来确定下一步操作。在执行下一行代码之前,我需要等待结果。现在,我的 conn.query 返回一个Future,但是当我将代码放在另一个函数中时,我无法使其异步。 main(){ //从settings.ini中获取数据库连接字符串项目根文件夹 db = getdb(); geturl()。then((String url)=> print(url) ..
发布时间:2020-10-15 04:35:26 其他开发

飞镖:取消发布延迟/将来

我是扑朔迷离的新手,我想通过调用API从 InputField 转换一些文本。但是,我不想在每个按键时都调用它,而只是在用户暂停键入时才调用它。 在Android上,我只会使用 Handler 类,该类具有 postDelay(),并预先调用 removeAllCallbacksAndMessages(null)。有没有办法在Dart上做类似的事情? 这是我当前的代码: Fut ..
发布时间:2020-06-11 01:52:14 其他开发

Dart组件:如何返回异步回调的结果?

嘿,我对Dart Futures很陌生,并且遇到以下情况。 每当用户在用户界面中键入字母时,我的ui_component中的addressChanged()方法被调用。此方法在我的地图组件网络中调用方法 getProposals(),该方法向google maps API发出异步请求。结果到这里后,我想将它们返回到UI组件,该组件将填充UI中的propasals下拉菜单。 我坚持最后一 ..
发布时间:2020-06-11 01:52:11 其他开发

DART:将来的语法

我不理解 then()子句的语法。 1。 myFuture(6).then((erg)=> print(erg)) 什么是(erg)=>语法上是expr ? 我想它可能是一个函数,但是 then(callHandler2(erg) 不起作用,错误: “此行的多个标记 -无法将参数类型'void'分配给参数类型'(字符串)-> 动态' -未定义名 ..
发布时间:2020-06-11 01:52:09 其他开发

setState不会更新用户界面

在使用有状态的小部件时,我遇到了一些与setState函数有关的问题,这些小部件在计时器的帮助下自行更新。下面的代码显示了2个主要类,它们复制了我如何找到此错误的方法。文本小部件“ Lorem”应该在10秒内插入-确实是-但从未显示。我尝试调试数组“ Items”,并在5秒后确实包含了“ lorem”文本窗口小部件。 “ build”函数可以运行,但在用户界面中没有任何区别。 class ..
发布时间:2020-06-11 01:52:06 其他开发

如何在Dart中获取Completer.CompleteException(exception,stackTrace);的当前堆栈跟踪;

如果某些代码返回了将来,并确定将来应返回“错误”或“异常”,则如何将堆栈跟踪传递给 Completer.completeException(exception,stackTrace); 解决方案 如果我正确理解:当您在dart中捕获异常时,还可以捕获堆栈跟踪: / p> try { //某些 } catch(e,stacktrace) { myCompleter.complet ..
发布时间:2020-06-11 01:52:03 其他开发

Flutter-setState不更新内部有状态小部件

基本上,我正在尝试制作一个应用程序,其内容将使用从网站获取信息的异步​​功能进行更新,但是当我尝试设置新状态时,它不会重新加载新内容。如果我调试了该应用程序,它将显示当前内容是新内容,但是在“重建”整个窗口小部件之后,它不会显示新信息。 编辑:loadData()方法,基本上读取带有http包的URL,该URL包含一个JSON文件,其内容每5分钟更新一次新消息。例如,带有体育实时记分板的.j ..
发布时间:2020-06-11 01:52:01 移动开发

如何在Flutter中实现永久秒表?

我正在实现一个定时器,这是应用程序的结构。 页面A(包含一些列表,用户单击该列表并将其带到定时器页面) 。 Page B格式,运行计时器。我能够正确运行计时器/秒表,但是当我按Page BI上的后退按钮时,会在处理错误后调用setstate()。我知道这是预期的行为。 如果我在使用上使用timer.cancel()不会出错,但是计时器将停止运行。即使我导航到页面A或说其他任何新页面,计时 ..
发布时间:2020-06-11 01:51:58 移动开发

飞镖/颤振-“产量”在回调函数中

我需要产生一个函数列表;但是,我想从回调函数中产生列表,该回调函数本身在主函数内部-这导致yield语句不是针对主函数执行,而是针对回调函数执行。 我的问题与此处解决的问题非常相似: Dart组件:如何返回异步回调的结果?,但是我不能使用Completer,因为我需要屈服而不返回。 以下代码应该更好地描述问题: Stream> fetchE ..
发布时间:2020-06-11 01:51:54 其他开发

从异步方法返回多个结果?

我目前有一个看起来像这样的方法: typedef void MyCallback(int status,String body); void makeRequest(String url,MyCallback callback)async { if(someCondition){ callback(1,’); } 响应响应=等待http.get(url); ..
发布时间:2020-06-11 01:51:51 其他开发

从未来实例中获取价值

我的数据是这样的: { “五个”:{ “组“:{ ”一个“:{ ”命令“:2 }, ”六“:{ ”命令“:1 } }, “ name”:“ Filbert”, “ skill”:“数据库” }, “四个”:{ “ group “:{ ”三个“:{ ”命令“:2 }, ”两个“:{ ”命令“:1 } }, “ name”:“ Robert”, “ skill”:“大数据” } ..
发布时间:2020-06-11 01:51:49 其他开发