Swift Academy · Ders

Result'ı async/await'e Uyarlama

Geri çağrı tabanlı Result API'lerini async hata fırlatan işlevlere dönüştürün.

4. ders / 412 adım

Result'ı async/await'e Uyarlama, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Hoş Geldiniz

Eski geri çağırma tabanlı API'ler `Result` döndürür. Modern kod asenkron yapı kullanır. İkisi arasında köprü kurmak yaygın bir iştir — Swift, her iki yön için de temiz örüntüler sunar.

withCheckedThrowingContinuation

```swift func fetchAsync(url: URL) async throws -> Data { try await withCheckedThrowingContinuation { cont in fetchCallback(url) { result in cont.resume(with: result) } } } ``` `cont.resume(with: result)`, bir `Result` değerini doğrudan kabul eder.

withCheckedContinuation (Hata Fırlatmayan)

```swift func fetchAsync(url: URL) async -> Result { await withCheckedContinuation { cont in fetchCallback(url) { result in cont.resume(returning: result) } } } ```

Asenkron Yapıyı Result'a Dönüştürme

```swift func asResult(of operation: () async throws -> T) async -> Result { do { return .success(try await operation()) } catch { return .failure(error) } } let r = await asResult { try await fetch(url) } ```

Asenkron Bağlamda Result.get()

```swift func process() async { let result: Result = await fetchAsync(url) do { let data = try result.get() handle(data) } catch { handle(error) } } ```

Köprü Kurmak için Task { }

```swift func load() { Task { let data = try await fetchAsync(url) await MainActor.run { self.render(data) } } } ```

Geri Çağrılardan AsyncStream Oluşturma

```swift func events() -> AsyncStream { AsyncStream { cont in let token = subscribe { event in cont.yield(event) } cont.onTermination = { _ in unsubscribe(token) } } } ```

Devam Nesnesi Güvenlik Kuralları

• `resume` işlevini tam olarak bir kez çağırın — iki kez çağırmak tanımsız davranışa yol açar • İşlev döndükten sonra `resume` çağırmayın • Hata ayıklama sırasında `withCheckedContinuation` kullanın (hataları algılar); performans için gerekirse sürüm derlemesinde `withUnsafeContinuation` kullanın

Kullanıcı Arayüzü Güncellemeleri için MainActor

```swift await MainActor.run { label.text = data.description } // or: @MainActor func updateUI(_ d: Data) { label.text = ... } await updateUI(data) ```

Asenkron+Sonuç Sınaması

```swift func testFetch() async throws { let result = await asResult { try await fetchAsync(url) } switch result { case .success(let d): XCTAssertFalse(d.isEmpty) case .failure(let e): XCTFail(e.localizedDescription) } } ```

Hızlı Kontrol

Hata ayıklama derlemelerinde çift kez devam ettirme gibi yanlış kullanımları hangi devam türü algılar?

Özet

Temel çıkarımlar: • `withCheckedThrowingContinuation`, geri çağrıları async throws yapısına bağlar • `cont.resume(with: result)`, doğrudan bir Result kabul eder • `async throws` yapısını bir yardımcı işlevle `Result` içine sarın • `resume` işlevini tam olarak bir kez çağırın • Asenkron bağlamdan güvenli kullanıcı arayüzü güncellemeleri için `MainActor.run { }` kullanın Kurs tamamlandı! Sıradaki: SwiftUI temelleri.
Başlamak ücretsiz

Yapay zeka eğitmeniyle Swift öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
122
Dersler
409

Sıkça Sorulan Sorular

“Result'ı async/await'e Uyarlama” dersi ücretsiz mi?

Evet — “Result'ı async/await'e Uyarlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Result'ı async/await'e Uyarlama” dersinde ne öğreneceğim?

Geri çağrı tabanlı Result API'lerini async hata fırlatan işlevlere dönüştürün. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Result'ı async/await'e Uyarlama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Result Temelleri
  2. Result Üzerinde map ve flatMap
  3. LocalizedError ile Özel Hata Türleri
  4. Result'ı async/await'e Uyarlama
← Swift Academy Sayfasına Dön