Ich möchte eine Alamofire-Anforderung ausführen, die das Ergebnis einer vorherigen Alamofire-Anforderung als Parameter verwendet. Um es einfach:Führen Sie die Alamofire-Anforderung nach Abschluss einer anderen Alamofire-Anforderung aus.
//Code1
Alamofire.request("URL", method: HTTPMethod.post, parameters: ["id": id as NSString)], encoding: URLEncoding.httpBody).response(completionHandler: { (response) in
let json = response.data
do {
print("This should be First")
let data = try JSON(data: json!)
let alllastmessages = data["Messages"].arrayValue
for i in 0..<alllastmessages.count {
self.List.append(alllastmessages[i]["message"].stringValue)
}}
catch _{}
})
//End Code1
//Code2
print("This should be Last")
for i in 0..<List.count {
Alamofire.request("URL2", method: .post , parameters: ["id": id as NSString] , encoding: URLEncoding.httpBody).response(completionHandler: { (response) in
//Do Something
})
self.tableView.reloadData()
}
//End Code2
(Dieser Code vereinfacht ist, bin ich nur nach einem Weg suchen Code1 vor Code2 laufen zu machen)
Ihre für Ihre Antwort danken, aber diese Lösung hat nicht funktioniert, weil es die Gruppe Eingabe> überspringen Alamofire (da läuft es letzten)> Ausführen group.wait() und wartet für immer. – Gintal
Können Sie den genauen Code anzeigen, den Sie verwendet haben? Ich habe mein Beispiel mit Code aktualisiert, den ich selbst ausgeführt habe, und was ich gesehen habe, funktionierte gut. – netigger
Funktioniert jetzt gut, vielen Dank. Mir fehlte "DispatchQueue.global (qos: .userInitiated) .async" – Gintal