hızlı birleştirme

Mar 24 2023
YAYINCILAR VE ABONELER Bu makalede, birleşik çerçevenin iki temel bileşeni olan YAYINCI ve ABONE'ye ilişkin temel bilgileri inceleyeceğiz. Apple, 2019 yılında Combine adlı yerleşik sistem çerçevesini tanıttı.

YAYINCILAR & ABONELER

Bu makalede, birleştirme çerçevesinin iki temel bileşeni olan PUBLISHER ve ABONE'nin temellerini inceleyeceğiz. Apple, Combine adlı yerleşik sistem çerçevesini 2019 yılında tanıttı. Çerçeve, verileri zaman içinde işlemek için bildirimsel API'ler sağlar.

Yayımcı

Publisher, Protocol Publisher'ı onaylayan bir türdür. Olayları bir veya daha fazla aboneye yayabilir.

Yayıncı Protokolü iki tür üzerinden geneldir

  1. Çıktı → Yayıncı tarafından yayılan çıktı değerlerinin türü
  2. Başarısızlık → Yayıncı değerleri yayamadığında atılan hata türüdür.
  1. Çıkış değeri/s
  2. bir tamamlama

Bir Yayıncı, olayları yalnızca abone olunduğu zaman yayınlayacaktır.

Publisher'ın temel işlevlerinden biri, yayıncının çıktısıyla eşleşmesi için aboneden girdi parametresini alan alma işlevidir.

Abone

Abone, yayıncıdan ne tür bir girdi alması gerektiğini tanımlar.

Abone Protokolü iki tür üzerinden geneldir

  1. Giriş → Abone tarafından yönetilebilen giriş değerleri türüdür.
  2. Başarısızlık → Abonenin yayıncıdan hata aldığında üstesinden gelebileceği hata türüdür.

Yayıncı ve Abone ile Çalışma

Yayıncı Oluşturma

Yayıncı, Just, Future, PassthroughSubject, CurrentValueSubject vb. birleştirme çerçevesi tarafından sağlanan türlerden herhangi biri kullanılarak oluşturulabilir.

Abone Oluşturma

Abone, aşağıdakiler gibi yerleşik türler kullanılarak oluşturulabilir:

  1. Atmak
  2. Atamak

Havuz, bir yayıncıya abone eklemenin en basit yoludur

Havuz, biri yayıncıdan gelen değeri kabul etmek ve işlemek, diğeri ise tamamlamayı işlemek için iki kapatma sağlar.

Atamak: )

Assign to will, değeri yayıncıdan alır ve belirli bir nesneye atar

Örnekler: yayıncı ve abonenin çalışmasının gösterilmesi

Sekans

Sequence Publisher, bir dizi değer yayar ve sonunda tamamlamayı çağırır.

Çıktı:

Verilen örnekte, yayıncının önce tüm değerleri sırayla yaydığını ve son olarak tamamlama bloğunu çağırdığını görebiliriz.

Sadece

Just Publisher, çıktısını her aboneye anında tam olarak bir kez yayar ve sonra bitirir.

Just Publisher hata vererek başarısız olamaz.

Çıktı:

Belirtildiği gibi, Just, mevcut değeri gönderdikten hemen sonra tamamlamayı bitirir.

Gelecek

Gelecekteki yayıncı, zaman uyumsuz bir işlemin değerini veya başarısızlığını yayar ve sonra tamamlar. Gelecek, Promise adlı kapatma yardımıyla bunu yapıyor . Promise, bir değer veya başarısızlık olabilen bir sonuç parametresi alacaktır. Gelecek, Promise'daki değeri veya başarısızlığı aldıktan hemen sonra sona erecektir.

Yukarıdaki örnekte, Geleceğin değeri alan bir söz kapanışını çağırdığını görebiliriz.

Çıktı:

Burada ilk olarak “Çalışmaya Başladı” yazdırılır, çünkü abone önce yayıncıya abone olur ve bu da asenkron çalışmayı başlatır. Ardından async işlemi devam ettiği için “End” yazdırır ve son olarak alınan değeri ve alınan tamamlamayı yazdırır.

Geçiş Konusu

PassthroughSubject, birden çok değer yayar ve herhangi bir başlangıç ​​değerine sahip değildir. Bir abone eklendiğinde, send (:) yönteminden değer alabilir .

Yukarıdaki örnekte, PassthroughSubject öğesinin herhangi bir başlangıç ​​değerine sahip olmadığını görebiliriz. Yayıncıya send (: ) yöntemi kullanılarak değer gönderildiğinde, abonenin geri arama değeri almasıyla sonuçlanır.

Çıktı:

Geçerli DeğerKonu

CurrentValueSubject geçerli değeri yayar ve oluşturulurken ilk değerle başlatılmalıdır. Yayıncı, buna bir abone eklerken send (: ) yönteminden PassthroughSubject ile aynı değeri alabilir. Yayıncının geçerli değerine, value özelliği kullanılarak erişilebilir . Aynısı, yayıncıya yeni geçerli değer atamak için kullanılabilir.

Yukarıdaki örnek, yayıncının başlangıç ​​değeri 0 ile başlatıldığını göstermektedir. PassthroughSubject gibi, yayıncıya send (: ) yöntemini kullanarak da değerler gönderebiliriz.

CurrentValueSubject içindeki value özelliği, geçerli değeri almak ve ayrıca belirtildiği gibi geçerli değeri atamak için kullanılıyor.

Çıktı:

abonelik

Abone tarafından abone olunan yayıncıya Abonelik denir. Abonelik " İptal Edilebilir " protokolünü onaylar .

[Not: Abone artık yayıncıdan değer almak istemediğinde aboneliği iptal etmesi önerilir. “İptal” yöntemi kullanılarak iptal edilebilir. Açıkça çağrılmadıysa, aboneliği yalnızca yayıncı tamamladığında durdurur]

Çıktı:

Umarım Yayıncı ve Abone arasında gezinmenize yardımcı olacak bazı temel konuları ele almışımdır. Mutlu öğrenme!

Teşekkür ederim :)