0

最新の Dart SDK で重大な変更に対処するために、いくつかの古い Dart コードについて説明します。これは私が理解できない:

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」メソッドの 1 つを使用すると、「chain」、「transform」、「then」の 3 つのメソッドをマージして、Future の結果に非同期関数または同期関数を適用できます。Streams と Futures は、非同期 Dart プログラムの書き込みと読み取りを容易にし、ある種のプログラミング エラーを減らすはずです。

于 2013-10-30T21:41:31.407 に答える