如何 return dart 闭包中的函数?
How to return the function in a closure in dart?
例如:
Future<int> _test1() async {
return Future.delayed(Duration(seconds: 1)).then((value) {
return 1;
});
}
void _onTapButton() async {
await _test1().then((value) {
print('a');
if (value == 1) {
print('return');
return;
}
});
print('b');
}
当我调用 _onTapButton
时,控制台打印 a
return
b
不是 a
return
.
也就是说_test1().then
中的return
没有return函数_onTapButton
.
有什么方法可以让我在 _test1().then
中 return 发挥 _onTapButton
的作用吗?
在你的代码中 then
部分是一个回调,将在你的未来完成时执行,return
是指在这个回调的范围内,而不是你的 _onTapButton
函数.
如果你想等待未来,如果结果为 1,打印 return
和 return from _onTapButton
,你可以试试这个:
void _onTapButton() async {
final value = await _test1();
print('a');
if (value == 1) {
print('return');
return;
}
print('b');
}
例如:
Future<int> _test1() async {
return Future.delayed(Duration(seconds: 1)).then((value) {
return 1;
});
}
void _onTapButton() async {
await _test1().then((value) {
print('a');
if (value == 1) {
print('return');
return;
}
});
print('b');
}
当我调用 _onTapButton
时,控制台打印 a
return
b
不是 a
return
.
也就是说_test1().then
中的return
没有return函数_onTapButton
.
有什么方法可以让我在 _test1().then
中 return 发挥 _onTapButton
的作用吗?
在你的代码中 then
部分是一个回调,将在你的未来完成时执行,return
是指在这个回调的范围内,而不是你的 _onTapButton
函数.
如果你想等待未来,如果结果为 1,打印 return
和 return from _onTapButton
,你可以试试这个:
void _onTapButton() async {
final value = await _test1();
print('a');
if (value == 1) {
print('return');
return;
}
print('b');
}