0

我将回顾一些较旧的 Dart 代码,使用最新的 Dart SDK 解决重大更改。这个我想不通:

Future<DateTime> get lastsave => 
client.lastsave.transform((int unixTs) => 
  new DateTime.fromMillisecondsSinceEpoch(unixTs * 1000, isUtc:true));

=>

The method 'transform' is not defined for the class 'Future<List<int>>'

据我了解,Future.transform() 的目的是应用同步转换(参见例如这个讨论线程)。即将异步调用转换为同步调用并返回值。

Future.transform 是否被其他东西取代了?

4

1 回答 1

3

自从该代码更新以来一定已经有一段时间了;)

只需将 transform 替换为 then 即可。

来自https://groups.google.com/a/dartlang.org/forum/#!topic/misc/Boch2XH9Tmk

我们还改进了 Future 类,并使其更易于使用。一个简单的“then”方法让您可以将异步或同步函数应用于未来的结果,合并“chain”、“transform”和“then”三个方法。Streams 和 Futures 应该使异步 Dart 程序更容易编写和阅读,并且应该减少某些类型的编程错误。

于 2013-10-30T21:41:31.407 回答