I have the following working synchronous func:
class UserNetworkRequest {
class func getUserByEmail(email: String) -> BackendlessUser {
let whereClause = "email = '\(email)'"
let dataQuery = BackendlessDataQuery()
dataQuery.whereClause = whereClause
let user = Backendless.sharedInstance().persistenceService.find(BackendlessUser.ofClass(), dataQuery:dataQuery) as BackendlessCollection
var error: Fault?
var retrievedUser: BackendlessUser?
if error == nil {
if let users = user.data {
print("user: \(users[0])")
retrievedUser = users[0] as? BackendlessUser
}
}
else {
print("Server reported an error: \(error)")
}
return retrievedUser!
}
}
And I’d like to make it asynchronous. I don’t understand why my attempt below is not working? It never executes the response handler (e.g. line 9 is never printed).
class UserNetworkRequest {
class func getUserByEmail(email: String, success: (user : BackendlessUser) -> Void, failure: () -> Void) {
let whereClause = "email = '\(email)'"
let dataQuery = BackendlessDataQuery()
dataQuery.whereClause = whereClause
Backendless.sharedInstance().persistenceService.find(BackendlessUser.ofClass(),
dataQuery: dataQuery,
response: { (result: BackendlessCollection!) -> Void in
print("inside response: \(result.getCurrentPage())")
if let users = result.getCurrentPage() as? [BackendlessUser] {
let user = users[0]
success(user: user)
}
},
error: { (fault: Fault!) -> Void in
print("fServer reported an error: \(fault)")
failure()
})
}
}