2016-05-19 6 views
0

Ich verwende derzeit Alamofire, um eine asynchrone HTTP-Anforderung an meinen Server zu senden, um einige Daten zurück zu erhalten. Allerdings mache ich ungefähr 3 Anfragen gleichzeitig an den Server und ich möchte nur die Daten von der letzten Anfrage verwenden, die ich mache. Allerdings habe ich dieses Problem, bei dem die erste 2 Anfrage nach der 3. Anfrage abgeschlossen wird. Daher wurden die Daten der ersten 2 Anfrage verwendet.Verwenden von Antwortdaten aus der letzten asynchronen HTTP-Anforderung mit Alamofire

HttpService.makeGetRequestWithHeader(AppEndPoint.driverLocation, params: params, completionHandler: {(responseData, error) -> Void in 
     if let data = responseData { 
      self.cars.removeAll() 

      let driverLocationListResponse: DriverLocationListResponse = DriverLocationListResponse.fromDictionary(data) 
      var driverCars: [DriverCar] = [] 
      for driver in driverLocationListResponse.driverLocationList { 
       let driverCar: DriverCar = DriverCar(driverId: driver.driverId!, latitude: driver.latitude!, longitude: driver.longitude!) 
       driverCars.append(driverCar) 
      } 

      self.addCars(driverCars) 
     } 
    }) 

Weiß jemand, wie man dieses Problem löst? Vielen Dank!

+1

Haben Sie versucht, eine Referenz auf diese Anfrage zu behalten und sie vor dem Ausführen abzubrechen? –

+0

Danke Alex. Es sieht so aus, als ob es jetzt funktioniert! – howly

+0

Froh, dass es geholfen hat, habe ich es als Antwort gepostet. –

Antwort

1

Behalten Sie einen Verweis auf diese Anfrage und brechen Sie sie vor dem Ausführen ab.

Verwandte Themen