如何从 Future 对象返回 Future 值?此代码不起作用。
import 'dart:async';
void main() {
var temp = foo();
temp.then((Future<int> future) {
future.then((int result) {
print(result);
});
});
}
Future<Future<int>> foo() {
return new Future<Future<int>>(() {
return new Future<int>(() => 5);
});
}
如何防止不必要的展开?
在这种情况下,在异步库“Future”中声明为泛型类。
abstract class Future<T> {
}
如果我创建如下表达式
new Future<Future<int>>();
然后将类型T
指定为Future<int>
泛型类 Future 的预期结果?
我认为结果必须与 type argument 中指定的一样T
。
IEFuture<int>.
但结果并不如预期。在 Dart API 站点上没有找到有关此异常行为的信息。
如果这是一个“功能”(但我认为异常行为错误地称为“功能”)那么为什么它没有记录在 Dart API 中?
如何解释这种差异?
为什么这段代码没有产生错误和警告?
另一个相同的示例,但不使用 Future。
void main() {
var temp = foo();
temp.baz((Foo<int> foo) {
foo.baz((int result) {
print(result);
});
});
}
Foo<Foo<int>> foo() {
return new Foo<Foo<int>>(() {
return new Foo<int>(() => 5);
});
}
如果在这种情况下结果与使用 Future 时一样(即意外),那么我们如何调用此代码?正常还是异常?
或者也许 Dart 中的未来有什么特别的(魔法)?