Вы делаете ГРУППУ асинхронных запросов, я предлагаю вам использовать DispatchGroup, поэтому до for routeid in prioritized_routes_with_stops.keys {
добавьте:
let group = DispatchGroup()
, затем после этого для добавления:
group.enter()
затем в вашем закрытии завершения, перед self.prioritized_routes_with_stops[routeid] = lst
добавьте:
group.leave()
наконец, после этого для:
group.notify(queue: .main) {
print (prioritized_routes_with_stops)
}