问题标签 [dart-async]
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 中完成了 zone 中的所有异步工作?
考虑我有这样的代码:
我如何知道一个区域内的所有异步工作何时完成?也就是说,是否有可能知道在一个区域内注册的所有异步方法(通过计时器、未来等)何时完成?
dart - sqljocky 查询没有方法“then”(dart 数据库访问)
我正在尝试在 Dart 中使用sqljocky 编写对数据库的 sql 访问。因为我想用我的数据库处理程序返回的结果进行一些计算,所以该方法返回一个 Future。
但是当我尝试运行它时,我收到以下错误:
我已经运行了调试器,发现这个错误出现在:
但是 catchError 子句不会触发。
我的处理方法是:
调用此处理程序的方法是:
如果我直接在 phpmyadmin 中运行查询,它会返回正确的数据,所以它是正确的。
有人可以给我一个关于如何解决它的提示吗?
dart - 我可以使用 Dart 获得跟踪所有异步调用的“堆栈跟踪”吗?
考虑这样的代码:
我怎么能知道我打印出来的那个bar
是“调用”的?foo
stackTrace
我想看到类似的东西:
dart - 链接 Dart 期货 - 可以访问中间结果吗?
Dart 允许链接future 以依次调用多个异步方法,而无需嵌套回调,这很棒。
假设我们想先连接到像Redis这样的数据存储,然后运行一堆顺序读取:
四种异步方法,但代码相当容易阅读和理解。看起来这些步骤几乎是同步和按顺序执行的。美丽的!(想象一下必须使用嵌套的 JavaScript 回调编写相同的代码......)
不幸的是,这不太行得通:我们从.connect
方法中获得的 RedisClient 只分配给了一个局部变量,该变量不在后续.then
s 的范围内。所以,redisClient.smembers
实际上redisClient.get
会抛出一个空指针异常。
显而易见的解决方法是将返回值保存在另一个具有函数作用域的变量中:
不幸的是,这使得代码更冗长,更不美观:现在有一个额外的辅助变量(theRedisClient),我们不得不用匿名函数替换其中一个 Lambda 表达式,添加一对花括号和一个return
语句以及另一个分号。
既然这似乎是一种常见的模式,有没有更优雅的方法呢?有什么方法可以在链条的下游访问那些早期的中间体?
dart - Dart - 如何模拟返回未来的方法
我有一个类,它定义了一个返回 Future 的方法。Future 包含一个也返回未来的类列表。
在测试另一个类时,模拟这些类中的方法的最佳方法是什么?
我要测试的课程看起来有点像
我尝试编写这样的单元测试
这让我可以测试构造函数是否调用了 user.photos() 方法,但不是调用了 album.photos() 方法。
我不确定模拟未来是一个好主意 - 创建一个包含模拟列表的“真实”未来不是更好吗?
任何想法都会非常有帮助!
dart - Execute Futures until a parameter becomes true
I launch a request to a server with a future "requestServer". I would like to poll a system for a specific value (passed from false to true, when request is done) and return when finished.
Code could be like that, but "while" synchronous and "checkOperation" is asynchronous?
Any ideas ?
dart - Future的超时方法坏了吗?
我有一个长时间运行的任务,我想与 Future 异步运行,但我也希望它最终超时。在我看来,我的超时从未被调用 - 但也许我没有正确使用超时?
这是在1.3.0-dev.4.1版本下也许我只是误解了如何使用超时
dart - Dart 取回函数的值
我正在尝试自学 Dart,但我来自 C,我有点困惑......
我正在这样做:
我正在尝试取回新地图,您可以猜到,它不起作用,我收到“不起作用”的消息。当代码在同一个函数中时,它起作用了......
拜托,你能帮我吗?
而且,有一个指针系统作为 C 吗?
谢谢您的帮助。
最终代码:
dart - 飞镖太快了
我试图理解为什么这段代码会打印两次“检查”......
是不是太快了?还是存在一些暂停的方法?谢谢你。
dart - 客户端,then() 还是其他?
我如何在客户端使用“未来”?
而且,我如何阻止我的代码的执行,而没有事件被捕获?
我在 ecmascript 6 中看到了 Promise 函数,有没有使用它的方法,或者想法?
HTML: