增加构建未来的延迟

时间:2018-12-16 13:27:15

标签: dart

在玩Dart时,是否有可能会延迟构建Future?:

factory Future.delayed(Duration duration, [FutureOr<T> computation()]) {
  _Future<T> result = new _Future<T>();
  new Timer(duration, () {
    try {
      result._complete(computation?.call());
    } catch (e, s) {
      _completeWithErrorCallback(result, e, s);
    }
  });
  return result;
}

是的,这是可能的:

{{1}}

1 个答案:

答案 0 :(得分:1)

您已经发现setTimeout(function() { dialogRef.find("div").first().find("div").first().html("Create a new business schedule"); }, 10); 构造函数会创建一个在延迟后运行的Future:

来自docs

Future.delayed
  

计算将在给定的持续时间过去之后执行,并且未来将以计算结果完成。

     

如果计算返回未来,则此构造函数返回的未来将以该未来的值或错误完成。

为简单起见,以一个立即完成并带有值的未来为例,此摘要创建了一个延迟的未来,该延迟在3秒后完成:

Future<T>.delayed(
    Duration duration,
    [ FutureOr<T> computation()
])