相关疑难解决方法(0)

使用 Combine 的 Future 在 Swift 中复制异步等待

我正在创建一个联系人类来异步获取用户的电话号码。

我创建了 3 个利用新组合框架的 Future 的函数。

func checkContactsAccess() -> Future<Bool, Never>  {
    Future { resolve in
            let authorizationStatus = CNContactStore.authorizationStatus(for: .contacts)

        switch authorizationStatus {
            case .authorized:
                return resolve(.success(true))

            default:
                return resolve(.success(false))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
func requestAccess() -> Future<Bool, Error>  {
    Future { resolve in
        CNContactStore().requestAccess(for: .contacts) { (access, error) in
            guard error == nil else {
                return resolve(.failure(error!))
            }

            return resolve(.success(access))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
func fetchContacts() -> Future<[String], Error>  {
   Future { resolve in
            let contactStore = CNContactStore()
            let keysToFetch …
Run Code Online (Sandbox Code Playgroud)

asynchronous async-await swift combine

3
推荐指数
1
解决办法
3277
查看次数

标签 统计

async-await ×1

asynchronous ×1

combine ×1

swift ×1