Throttler: ограничение действий пользователя

Throttler — библиотека, которая ограничивает излишне повторяющиеся действия. Типичная проблема, которую может решить Throttler — пользователь много раз нажимает кнопку, которая запрашивает асинхронный сетевой вызов. Throttler в одну строчку кода ограничивает такие действия до одного нормального вызова.

Пример использования:

import UIKit

import Throttler

class ViewController: UIViewController {
    @IBOutlet var button: UIButton!
    var index = 0
    Assuming your users will tap the button, and 
    request asyncronous network call 10 times(maybe more?) in a row within very short time nonstop.
    @IBAction func click(_ sender: Any) {
        Throttler.go {
            // Imaging this is a time-consuming and resource-heavy task that takes an unknown amount of time!
            let url = URL(string: "")!
            let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
                guard let data = data else { return }
                self.index += 1
                print("click1 : \(self.index) :  \(String(data: data, encoding: .utf8)!)")
    override func viewDidLoad() {
        // Do any additional setup after loading the view.

Платформа: iOS
⭐️: 16

Exit mobile version