【发布时间】:2021-04-14 11:10:33
【问题描述】:
Docs 说:
在await表达式中,表达式的值通常是一个Future;如果不是,则该值会自动包装在 Future 中。
所以,如果我使用:
void main() async {
var a = await 1;
print(a); // Prints 1
print(Future.value(1)); // Prints `Instance of _Future<int>`.
}
使用文档所说的,第一次打印应该打印Instance of _Future<int>,但它会打印1。谁能用the value is automatically wrapped in a Future解释那条线是什么意思?
【问题讨论】:
-
@Dude "在await表达式中,表达式的值通常是一个Future;如果不是,则该值会自动包装在一个Future中。"跨度>
-
@Dude 是不是意味着
1被包裹在Future 中,如果是的话,它不应该打印Future<int>吗? -
这意味着
1被包裹在Future中,所以await 1等价于await Future.value(1),然后等待那个future完成并计算为1。跨度> -
@lrn 谢谢,你介意把它写成答案吗?
标签: dart