在编写异步函数时,通常如果你没有明确地编写器await
或者async
你的编译器会抛出错误或警告。下面的正确语法示例:
public async Task<List<TEntity>> GetEntitiesAsync() =>
await TEntityRepository.GetAllAsync();
现在以下仍然有效,它是异步的并返回一个 Task<List>
public Task<List<TEntity>> GetEntitiesAsync() =>
TEntityRepository.GetAllAsync();
为什么第二个仍然有效
两个调用都返回相同的任务,因此它们实际上是相同的。
为了在方法中使用“等待”,该方法必须标记为异步。由于第二个不使用 await,因此不需要将其标记为 async。
而已。
话虽如此,这样做可能不是一个好主意,因为@TheGeneral提到的文章中描述了一些陷阱: https://blog.stephencleary.com/2016/12/eliding-async-await。 html