在dart中,我想编写一个返回未来的函数。 我无法在任何地方找到一个例子,但我自己还没有想出来。
该函数包含对返回期货的其他函数的调用以及顺序代码。
例如为: 我有一些课:
class Basic {
int x;
}
想象已经存在一个函数:
Future<int> f(int x);
我的函数应返回一个Basic对象,其值为f()+某个数字:
Future<Basic> myFunction(int y) {
Basic b;
f(y).then((z) {
b.x = z + y;
return b;
});
}
当我在主要打电话时:
void main() {
Future<Basic> basic_future = myFunction(3);
basic_future.then((result) => print(result.x));
}
basic_future.then语句抛出异常,因为basic_future为null,即我认为发生的事情是myFunction在运行f()之前出现并返回null因此basic_future为null。后来f()返回并返回正确的basic_future,但为时已晚。
如何解决这个问题? (希望这是可以理解的)
谢谢, 姆兰
答案 0 :(得分:3)
Future.then返回Future
。因此,您只需返回then
电话的结果:
Future<Basic> myFunction(int y) {
return f(y).then((z) {
Basic b = new Basic();
b.x = z + y;
return b;
});
}