swift 异步 async/await 的使用

如题所述

第1个回答  2022-07-15

基本使用方式:

方法后面跟上 async 表示是一个异步函数。如果调用异步函数

在正常返回的函数中使用 async 修饰的func时,需要用Task{} 进行包装,否则报错

使用方式:

属性也可以 async properties

使用异步属性,必须只能是 get 属性。可写属性不能使用异步属性。

public func resume(returning x: T) 接收 completion 中的数据返回,转换成 async 函数返回。

public func resume(throwing x: E) 进行抛出异常
withCheckedContinuation 方法中的 checked 会在运行时对操作进行检查:是否调用 resume 进行返回。如果不调用会造成资源泄露。多次调用也会造成问题。
continuation 有且只能 resume 一次。

withUnsafeContinuation 的工作机制和 withCheckedContinuation 一致,唯一区别在于运行时不会对操作进行检查。但性能更好。实际使用中 withCheckedContinuation 测试没有问题后,正式发布时使用 withUnsafeContinuation

使用方式如下:

withCheckedContinuation

如果有抛出异常
withCheckedThrowingContinuation

相似回答