PromiseKit с пейджингом в swift - PullRequest
0 голосов
/ 07 мая 2018

Я использую https://github.com/mxcl/PromiseKit для настройки Promosekit для создания цепочки вызовов API.

У меня есть вопрос о том, как реализовать разбиение на страницы в обещании.

1 Ответ

0 голосов
/ 07 мая 2018

Вместо использования PromiseKit используйте OperationQueue. Вместо магии вы поймете все до мелочей.

Очевидно, что потребуется больше кода, чем PromiseKit, но он встроен в Apple SDK.

Пожалуйста, проверьте следующий фрагмент

// setup your operation queue
// typically done where you start sending the api request
// like viewDidLoad
// assumed that opQueue is declared as class's instance member
opQueue = OperationQueue.init()
opQueue.maxConcurrentOperationCount = 1 // ensure that only one operation will run at a time
opQueue.name = "Api Call Serializer"
opQueue.qualityOfService = QualityOfService.background

// after instantiating add a operation to the queue
opQueue.addOperation {
    makeApiCall(url: first_url)
}


func makeApiCall(url: URL) {
    //put your api call code here
    YOUR_API_CALL({(responseData)// i have assumed that your api call will ending in a swift closure. If you use delegate, it will be same as following.
        // your processing of api response
        // build the next_url for pagination.
        opQueue.addOperation {
            makeApiCall(url: next_url)
        }            
    })
}

Надеюсь, это поможет.

...