【问题标题】:Dart eventloop control equivalentDart 事件循环控制等价物
【发布时间】:2021-03-24 19:53:18
【问题描述】:

在 NodeJS 中,我们有 process.nextTick()setImmediatesetTimeout,我想知道 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


【解决方案1】:

对应的Dart操作有:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2022-01-24
    • 2019-02-25
    • 1970-01-01
    • 2014-10-08
    • 2019-03-04
    相关资源
    最近更新 更多