Sobes.tech
Junior

Фарқи байни дархостҳои синхронӣ ва асинхронӣ чист?

sobes.tech AI

Ҷавоб аз AI

Синхронӣ дархостҳо ҷараёни иҷрои ҳозираро то гирифтани ҷавоб мепӯшонанд. Дархостҳои асинхронӣ ҷараёнро мепӯшонанд; ҷавоб пас аз анҷоми амал, одатан тавассути механизмҳои callback, делегат ё пӯшишкорӣ, коркард мешавад.

Хусусият Дархости синхронӣ Дархости асинхронӣ
Блок кардани ҷараён Бале Не
Реактивии UI Мумкин аст UI-ро блок кунад UI-ро блок намекунад
Суръати амалӣ кардан Осонтар Мураккаб (идоракунии ҳолат)
Истифода дар iOS Кам, танҳо барои вазифаҳои кӯтоҳ, дар ҷараёни асосӣ нест Тарҷиб, махсус барои амалиётҳои дароз

Масалан дархости асинхрон бо URLSession:

// Эҷоди URLSessionTask
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // Ин блок пас аз анҷоми дархост асинхрон иҷро мешавад
    if let error = error {
        print("Хатогӣ: \(error.localizedDescription)")
        return
    }

    // Коркарди маълумоти гирифташуда
    if let data = data {
        print("Маълумот гирифта шуд, байтҳо: \(data.count)")
    }

    // Навсозии UI бояд дар ҷараёни асосӣ анҷом дода шавад
    DispatchQueue.main.async {
        // Навсозии UI
    }
}

// Иҷрои вазифа
task.resume()

// Код дар ин ҷо фавран иҷро мешавад, бидуни интизорӣ барои анҷоми дархост
print("Дархост ирсол шуд")