在 dart 中,我想编写一个返回 future 的函数。 我在任何地方都找不到例子,而且自己还没有弄清楚。
该函数包含对返回 future 的其他函数的调用以及顺序代码。
例如: 我有一些课:
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;
});
}
当我在 main 中调用它时:
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,但为时已晚。
如何解决这个问题? (希望这是可以理解的)
谢谢, 伊姆兰
最佳答案
Future.then返回一个Future
。因此,您只需返回 then
调用的结果:
Future<Basic> myFunction(int y) {
return f(y).then((z) {
Basic b = new Basic();
b.x = z + y;
return b;
});
}
关于function - dart 如何返回 future,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172799/