Asynchronous 如何等待Dart未来同步完成
比如说,我有一个异步函数,我想在同步函数中调用它。例如:Asynchronous 如何等待Dart未来同步完成,asynchronous,dart,Asynchronous,Dart,比如说,我有一个异步函数,我想在同步函数中调用它。例如: Future<int> foo() async { // do something return 109; } int bar() { var r = wait_for_future(foo()); return r; } Future foo()异步{ //做点什么 返回109; } 整型条(){ var r=等待未来(foo()); 返回r; } 我正在寻找的是等待未来的可能实现。这甚至可以在Dart
Future<int> foo() async {
// do something
return 109;
}
int bar() {
var r = wait_for_future(foo());
return r;
}
Future foo()异步{
//做点什么
返回109;
}
整型条(){
var r=等待未来(foo());
返回r;
}
我正在寻找的是等待未来的可能实现
。这甚至可以在Dart中完成吗?否,并且无法阻止主线程等待异步任务:
一旦Dart函数开始执行,它将继续执行,直到退出。换句话说,Dart函数不能被其他Dart代码中断
这意味着无法暂停并等待其他Dart代码执行。有一个临时的–waitFor
,允许同步等待异步方法
不过,这仅在Dart虚拟机上可用 ?
await
不能用于非异步函数中。我认为这不是一个正确的结论,因为这是可以做到的,例如,在Python单线程代码中,使用运行直到完成。这在Dart中可能是不可能的,但单线程与能够屈服于事件循环并不冲突。对,这就是为什么我说Dart不能做到这一点。我只是说,不能从Dart的单线程,也不能从您引用的文档部分推断出这一点。我不是要先发制人,而是要让步。听起来这是目前能找到的最好的办法。谢谢