Teklifinize sunulabilecek iki operatör vardır.
Zip: RxJs için
Referans: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/zip.md
CombineLatest: RxJs için
Referans: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/combinelatest.md
görüntüleri arasındaki farkları açıklar her ikisi de. Şimdi, gözlemlenebilen değerleri birleştirdiniz, sadece where kullanarak filtrelemeniz gerekiyor, bu değerlerden biri boşsa filtreleyecek.
Stream A : A, B, C, D, E....
Stream B : 1, null, 2, null, 3....
Composed : (A,1),(B,1),(C,2),(D,2)....
Eğer Zip kullanırsanız ve Nerede (sonra boş değerler filtreleme), sonuç olacaktır:
Composed: (A,1),(C,2),(E,3)
kullanırsanız
Maalesef ne operatörler açıkladığınız bu davranışı elde edebilirsiniz ve Zip (boş önce değerleri filtreleme) halinde, sonuç olarak elde edilecektir:
Composed: (A,1),(B,2),(C,3)
Eğer CombineLatest olaylar Akışları olur bu emrin bağlıdır ve elbette olacaktır kullanırsanız where
operatörü koyacağız nerede, sonuç farklı olabilir size gösterilen ne örn:
Stream A : A, B, C, D....
Stream B : 1, null, 2, null....
Composed : (A,1),(B,1),(C,1),(C,2),(D,2).... // OR
Composed : (A,1),(B,1),(B,2),(C,2),(D,2)....
Sürece Daha özel gereksinimleri var, bence bahsettiğim seçeneklerden biri aradığınız şey, bilgi eklemek için çekinmeyin.
gözlemlenebilir 's oluşturmak için çeşitli yollar, belirtilmeyen diğer operatörler şunlardır vardır:
- distinctUntilChanged, zip veya en son sadece bir kısmı için sınırlamak için anahtar seçici işlevini kullanarak, kompozisyon finalinde eklenebilir değer.
- switch, bir diğerinin içinde gözlenebilir olanı birleştirmek için kullanılır.
Dunno, RxJS'de tam olarak nasıldır, ancak genel olarak ilk sorun genellikle "zip" ile çözülür, ardından iki akış bir çift akışı olarak birleştirilir. Dunno tekrar ikinci sorunun nasıl çözülmesi gerektiğini. –