Wednesday, November 4, 2026
HomeiOS Developmentios - Perform does not look forward to nested perform earlier than...

ios – Perform does not look forward to nested perform earlier than returning

[ad_1]

I’ve a closure to retrieve a token string:

var getAccessToken = { () -> (String) in
    var token = String("")
    credentialsManager.credentials(minTTL: 60) { end in
        swap outcome {
        case .success(let credentials):
            token = credentials.accessToken         
        case .failure(let error):
            token = ""
        }
    }
  return token
}

Once I name getAccessToken() from one other perform like beneath, it at all times returns empty, because it does not look forward to credentialsManager.credentials closure to return:

    func getUserProfile(completion: @escaping (UserProfile) -> ()) {
                                      
        let accessToken = getAccessToken()
        
        let url = URL(string: "https://asdf.com")!

        enum DataTaskError: Error {
          case invalidResponse, rateLimited, serverBusy
        }
        
        var request = URLRequest(url: url)
 
        request.addValue("Bearer (accessToken)", forHTTPHeaderField: "Authorization")
        request.addValue("software/json", forHTTPHeaderField: "Content material-Kind")
 
        URLSession.shared.dataTask(with: request) { (knowledge, _, _) in
         
            guard let knowledge = knowledge else { return }
            
            do {
                let userProfile = strive JSONDecoder().decode(UserProfile.self, from: knowledge)
                
                DispatchQueue.primary.async {
                    completion(userProfile)
                }
                
            } catch {
                print(error.localizedDescription)
            }
           
        }
        .resume()
    }

I attempted utilizing a completion handler with getAccessToken:

func getAccessToken(completion: @escaping () -> (String)) { 
   //...
   completion(token)
}

however Swift errored: Argument handed to name that takes no arguments

[ad_2]

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments