如何等待Dart Future同步完成

时间:2018-08-20 21:25:17

标签: asynchronous dart

说,我有一个要在同步函数中调用的异步函数。例如:

Future<int> foo() async {
  // do something
  return 109;
}

int bar() {
  var r = wait_for_future(foo());
  return r;
}

我正在寻找wait_for_future的可能实现。甚至可以在Dart中完成吗?

2 个答案:

答案 0 :(得分:2)

有一个临时 dart:cliwaitFor,它允许人们同步等待异步方法。

这仅在Dart VM上可用。

答案 1 :(得分:0)

否,Dart is single-threaded,并且不可能阻塞等待异步任务的主线程:

  

Dart函数一旦开始执行,它将继续执行直到退出。换句话说,Dart功能不能被其他Dart代码中断。

这意味着无法暂停并等待其他Dart代码执行。