我正在尝试设计一个界面,该界面抽象了长时间运行的操作,不应直接从UI使用它。为了对其进行抽象,我创建了一个抽象类,该类具有执行此类操作的唯一方法:
abstract class MakeSomething {
Result make(Param param);
}
但是我不能将其标记为async
(试图放在签名之前,返回类型之前和分号之前)。有可能吗?如果可以,怎么办?
答案 0 :(得分:1)
async
函数必须返回一个Future
。如果您希望make
函数是异步的,则它必须返回Future<Result>
。
请注意,async
不是函数类型签名的一部分; async
是上下文enables the use of await
的上下文关键字。这意味着async
在声明抽象接口时不是很有用。重要的是该函数返回一个Future
,派生类可以选择是否使用async
/ await
来实现该函数。