Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 添加延迟构建未来_Dart - Fatal编程技术网

Dart 添加延迟构建未来

Dart 添加延迟构建未来,dart,Dart,玩飞镖游戏,是否有可能创造一个构建未来的延迟 Future<String>.value("Hello").then((newsDigest) { print(newsDigest); }) // .delayed(Duration(seconds: 5)) Future.value(“Hello”)。然后((新闻摘要){ 印刷品(新闻摘要); })//.延迟(持续时间(秒:5)) 是的,这是可能的: factory Future.delayed(Dur

玩飞镖游戏,是否有可能创造一个构建未来的延迟

Future<String>.value("Hello").then((newsDigest) {
        print(newsDigest);
      }) // .delayed(Duration(seconds: 5))
Future.value(“Hello”)。然后((新闻摘要){
印刷品(新闻摘要);
})//.延迟(持续时间(秒:5))
是的,这是可能的:

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;
}
factory Future.delayed(持续时间,[FutureOr computation()){
_未来结果=新的_Future();
新计时器(持续时间,(){
试一试{
结果。_完成(计算?.call());
}渔获物(东、南){
_completeWithErrorCallback(结果,e,s);
}
});
返回结果;
}

正如您已经发现的
未来。延迟的
构造函数创建一个在延迟后运行的未来:

从:

Future.delayed(
持续时间,
[未来或计算()
]) 
计算将在给定的持续时间过后执行,未来将根据计算结果完成

如果计算返回未来,则此构造函数返回的未来将包含该未来的值或错误

为了简单起见,使用一个值获取一个立即完成的未来,此代码段创建一个延迟的未来,在3秒后完成:

import 'dart:async';

main() {
  var future = Future<String>.value("Hello");

  var delayedFuture = Future.delayed(Duration(seconds: 3), () => future);

  delayedFuture.then((value) {
    print("Done: $value");
  });
}
导入'dart:async';
main(){
var future=future.value(“你好”);
var delayedFuture=Future.delayed(持续时间(秒:3),()=>Future);
delayedFuture.then((值){
打印(“完成:$value”);
});
}
import 'dart:async';

main() {
  var future = Future<String>.value("Hello");

  var delayedFuture = Future.delayed(Duration(seconds: 3), () => future);

  delayedFuture.then((value) {
    print("Done: $value");
  });
}