问题描述
如果我有一个返回某种类型的 async
的 Future<void>
方法,最后它调用另一个返回其他 Future
的方法,它们之间有什么区别:
Future<void> method() async {
...
return await otherMethodReturningFuture();
}
和:
Future<void> method() async {
...
return otherMethodReturningFutureVoid();
}
(假设我不关心 otherMethodReturningFutureVoid
的返回结果,在这种情况下我可以安全地将其“转换”为 Future<void>
,或者它甚至返回 Future<void>
。 )
我猜第一个选项会导致两个块放在事件循环中,而第二个只放在一个块中,但是我有什么理由选择一个或另一个吗?
当我在 Flutter 的 ModalRoute
中看到这段代码时,我想到了这个问题:
@override
Future<RoutePopdisposition> willPop() async {
final _ModalScopestate<T> scope = _scopeKey.currentState;
assert(scope != null);
for (final WillPopCallback callback in List<WillPopCallback>.from(_willPopCallbacks)) {
if (await callback() != true)
return RoutePopdisposition.doNotPop;
}
return await super.willPop();
}
可以这样写:
...
return super.willPop();
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)