Dart:异步抽象方法

时间:2019-04-18 15:49:15

标签: dart

我正在尝试设计一个界面,该界面抽象了长时间运行的操作,不应直接从UI使用它。为了对其进行抽象,我创建了一个抽象类,该类具有执行此类操作的唯一方法:

abstract class MakeSomething {

  Result make(Param param);

}

但是我不能将其标记为async(试图放在签名之前,返回类型之前和分号之前)。有可能吗?如果可以,怎么办?

1 个答案:

答案 0 :(得分:1)

async函数必须返回一个Future。如果您希望make函数是异步的,则它必须返回Future<Result>

请注意,async不是函数类型签名的一部分; async是上下文enables the use of await的上下文关键字。这意味着async在声明抽象接口时不是很有用。重要的是该函数返回一个Future,派生类可以选择是否使用async / await来实现该函数。