Dart:异步抽象方法

2024-03-10

我正在尝试设计一个接口来抽象不应直接从 UI 使用的长时间运行的操作。为了抽象它,我创建了一个抽象类,其中包含执行此类操作的唯一方法:

abstract class MakeSomething {

  Result make(Param param);

}

但是我无法将其标记为async(尝试放在签名之前、返回类型之前和分号之前)。有可能吗?如果有的话,如何实现?


async函数几乎总是必须返回一个Future。 (一个不常见的例外是async函数可能有一个void返回类型为“即发即弃”;在这种情况下,函数完成时没有自动方式通知调用者。)

如果你想要你的make函数是异步的并提供Result对于调用者,它必须返回Future<Result>.

注意async不是函数类型签名的一部分;async是一个上下文关键字enables指某东西的用途await https://stackoverflow.com/a/54634939/179715在函数体内。这意味着async在声明抽象接口时不是很有用。重要的部分是该函数返回一个Future,并且派生类可以选择是否使用来实现该函数async/await.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dart:异步抽象方法 的相关文章

随机推荐