代码之家  ›  专栏  ›  技术社区  ›  Elektito

如何同步等待飞镖的未来完成

  •  1
  • Elektito  · 技术社区  · 7 年前

    比如,我有一个异步函数,我想调用一个同步函数。例如:

    Future<int> foo() async {
      // do something
      return 109;
    }
    
    int bar() {
      var r = wait_for_future(foo());
      return r;
    }
    

    我要寻找的是一个可能的实现 wait_for_future . 甚至可以在DART中完成吗?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Kevin Moore    7 年前

    有一个 临时的 dart:cli 艾斯 waitFor 它允许同步等待异步方法。

    不过,这只在DART虚拟机上可用。

        2
  •  0
  •   matanlurey    7 年前

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

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

    这意味着没有办法 暂停 等待其他DART代码执行。