Мойя загрузи картинку и установи таймаут - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть 100 фотографий для загрузки, и каждый раз загружаю одну фотографию.Я использую OperationQueue, чтобы установить maxConcurrentOperationCount равным 5.

let queue:OperationQueue = OperationQueue()
            queue.maxConcurrentOperationCount = 5
let operation:BlockOperation = BlockOperation(block: {
                    [weak self] in
                    guard let strongSelf = self else {return}
                    strongSelf.uploadImage(image)
                    return
                })
queue.addOperation(operation)

, а затем использую rxmoya для загрузки изображения.Я установил тайм-аут на 10 секунд, и предположим, что для каждого изображения требуется 1 секунда.

func uploadImage(_ image: UIImage) { 
   AladdinProvider.rx.request(.upload(access_token: UserInfo.instance.access_token!, file_name: 
    "file_name", data: image)).asObservable().mapJSON().mapObject(type: 
    AlbumDatas.self).subscribe(onNext: {
       print("success")
    }, onError: {
       print("error")            
    }).disposed(by: disposeBag)
}

Я понимаю, что при успешной загрузке каждого изображения оно никогда не прекратится.Потому что для загрузки каждого img нужно всего 1 сек.Но дело в том, что когда я загружаю больше 10 imgs, он вызывает onError, и ошибка показывает время ожидания. Каждый запрос на загрузку является независимым, почему они рассчитывают время ожидания для всех запросов?Большое спасибо!

...