【发布时间】:2021-03-24 19:53:18
【问题描述】:
在 NodeJS 中,我们有 process.nextTick()、setImmediate 和 setTimeout,我想知道 Dart 中的等价物
setImmediate()旨在在当前轮询阶段完成后执行脚本。setTimeout()安排一个脚本在以毫秒为单位的最小阈值过去后运行。
任何时候您在给定阶段调用
process.nextTick(),所有传递给process.nextTick()的回调都将在事件循环继续之前得到解决。这可能会造成一些不好的情况,因为它允许您通过进行递归process.nextTick()调用来“饿死”您的 I/O,从而阻止事件循环进入轮询阶段
【问题讨论】:
-
我对 NodeJS 一无所知,所以我不完全确定您在寻找什么。但它看起来像微任务:api.dart.dev/stable/2.10.4/dart-async/scheduleMicrotask.html
-
如果不是这样,您能否提供一个您想要实现的示例。
-
是的,我看到了同一篇文章,但是由于 Dart 与 NodeJS 不同,因此您不能假设您可以将 NodeJS 程序一对一地转换为 Dart。这就是为什么我问你是否可以举一个例子来说明你想要实现的目标(你希望你的程序解决的问题),而不仅仅是 API 调用的描述。
-
我在我的颤振应用程序中使用
bloc当我add并且事件它没有同步更改状态时,在add之后在调用堆栈中同步执行的应用程序的另一部分,我需要读取了state的值,但由于同步执行而没有改变,我添加了一个await Future.delayed(Duration.zero)来同步中断,我想确定它是一个好方法并且没有其他选择
标签: dart