Sequential upload / seriële wachtrij met alamofire

stemmen
0

Ik gebruik Alamofireen een seriële DispatchQueueom te proberen en het uploaden van een foto tegelijk uit een scala aan beelden. Ik wil graag één tegelijk uploaden, zodat ik een enkele vooruitgang HUD kunt bijwerken omdat elke upload gaat door. Mijn code ziet er ongeveer als volgt uit:

let serialQueue = DispatchQueue(label: project.serialQueue)
for image in images {
    serialQueue.async {
        uploadImage(image: image, progress: { progress in 
            //update progress HUD
        }, completion: { json, error in 
            //dismiss HUD
        })
    }
}

Het probleem is dat mijn uploadImage()gesprekken worden allemaal uitvoeren in een keer. Ik denk dat dit komt omdat Alamofirede verzoeken asynchroon worden uitgevoerd. Alle ideeën over de beste manier om dit oplossen?

De vraag is gesteld op 02/12/2019 om 23:56
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Alamofire loopt in zijn eigen achtergrond wachtrij, zodat u kunt proberen

var counter = 0
func uploadImg(_ img:UIImage) {
    uploadImage(image: img, progress: { progress in 
        //update progress HUD
    }, completion: { json, error in 
        //dismiss HUD
        self.counter += 1
        if self.counter < images.count {
           self.uploadImg(images[counter])
        }
    })
}

telefoontje

uploadimg(images.first!)
antwoordde op 03/12/2019 om 00:17
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more