首页 > 解决方案 > 是否有相当于“异步”的 SynchronousFuture

问题描述

出于某种原因,编译器抱怨这个:

  SynchronousFuture<void> setNewRoutePath(AppLink newLink) {
    _currentLink = newLink;
    // return null; // compiler really wants to see this null return...why?
  }

但对此很满意:

  Future<void> setNewRoutePath(AppLink newLink) async {
    _currentLink = newLink;
  }

似乎async关键字在这里处理隐式返回。有一些等价物SynchronousFuture吗?

标签: flutterdart

解决方案


除非您创建了一个名为SynchronousFuture编译器的类,否则编译器会报错,因为在 dart 标准库中没有调用类SynchronousFuture,因此您或您导入的库必须定义此类。

dart所有async函数中都必须有一个类型的返回值Future<T>

// 返回空值;// 编译器真的很想看到这个 null 返回...为什么?

因为Future与 不同void,当您在异步函数中返回一个值时,该值随后用作未来的值,因为未来是一个泛型类。


推荐阅读