如何使用dart future.sync方法

时间:2014-06-18 06:48:46

标签: dart dart-async

当我尝试使用来自类未来的future.sync时,如

import 'package:async/async.dart';
import 'dart:async';

void main() {
    var fur3 = new Future<int>(() => 45);
    int z = Future.sync(fur3);
    print(z);
}

我收到了错误消息

  

突破异常:NoSuchMethodError类型的对象

我是否以错误的方式使用future.sync?

我的第二个问题是

import 'package:async/async.dart';

void main() {
  var fur1 = new Future<int>(() => 45);
    fur1.then((value) {
      return value;
    }).catchError((err) => print('catchError1: ${err}'));
}

为什么当我尝试从包中导入异步库时,我有编译器消息

  

突破异常:类型为TypeError的对象
  未定义的课程&#39;未来&#39;

我在这做错了什么?

1 个答案:

答案 0 :(得分:7)

1)您不会将未来传递给Future.sync(),而是立即执行闭包。

Future z = new Future.sync(() => print('bla'));

2)async是一个内部包。您可以使用

导入它
import 'dart:async';

不需要将内部包添加到pubspec.yaml依赖项,因为它们始终可用。不同的import语句与此有关。