powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Зачем в rx столько subject-ов?
25 сообщений из 36, страница 1 из 2
Зачем в rx столько subject-ов?
    #39792032
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спрашиваю здесь, так как заумь RX-а в ангуляре всем "навязали", посему людей в теме тут наверняка больше.

Вопрос - помимо Subject существуют объекты ReplaySubject и BehaviourSubject .

Зачем?

ReplaySubject = Subject (произвольный размер буфера)
BehaviourSubject = Subject (1)

В чём смысл?
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792046
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792050
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA Understanding rxjs BehaviorSubject, ReplaySubject and AsyncSubject

Я в две строчки выразил то, что ты привёл по ссылке.

Ты хочешь сказать что я неправ? Объясни тогда.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792054
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Async Subject - единственный Subject, что поведение условно "сильно" отличается от остальных.

Поведение остальных регулируется параметром буфера.

Я вижу это так.

skyANA, а ты сам шаришь в теме?
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792061
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомskyANA Understanding rxjs BehaviorSubject, ReplaySubject and AsyncSubject

Я в две строчки выразил то, что ты привёл по ссылке.

Ты хочешь сказать что я неправ? Объясни тогда.
Не прав в чём? Ты пока ничего не утверждал. Только спросил.

Мнительный ты какой-то.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792079
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понимаю смысла твоего поста со ссылкой.

Ты бота тестируешь? Я где-то такое видел.

Я показал, как понимаю эти объекты. Ты зачем-то привёл статью, где они описываются.

Ничего нового я там для себя не увидел.

Какие выводы мне сделать?
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792081
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,

Задолбал ты уже порядком. Не хватает ума осмыслить столь несложные вещи, поищи себе работу попроще.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792099
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаАгнец за бортом,

Задолбал ты уже порядком. Не хватает ума осмыслить столь несложные вещи, поищи себе работу попроще.

Ну блесни умом, потрать строчку.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792100
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаАгнец за бортом,

Задолбал ты уже порядком. Не хватает ума осмыслить столь несложные вещи, поищи себе работу попроще.

И это говорит персонаж, который в первый раз увидев дженерики сразу ломанулся на форум? Ну так себе.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792116
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомНу блесни умом, потрать строчку.

Покажи в каком месте BehaviourSubject = Subject(1)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package rx.subjects;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import rx.Observable.OnSubscribe;
import rx.exceptions.Exceptions;
import rx.functions.Action1;
import rx.internal.operators.NotificationLite;
import rx.subjects.SubjectSubscriptionManager.SubjectObserver;

public final class BehaviorSubject<T> extends Subject<T, T> {
    private static final Object[] EMPTY_ARRAY = new Object[0];
    private final SubjectSubscriptionManager<T> state;

    public static <T> BehaviorSubject<T> create() {
        return create((Object)null, false);
    }

    public static <T> BehaviorSubject<T> create(T defaultValue) {
        return create(defaultValue, true);
    }

    private static <T> BehaviorSubject<T> create(T defaultValue, boolean hasDefault) {
        final SubjectSubscriptionManager<T> state = new SubjectSubscriptionManager();
        if (hasDefault) {
            state.setLatest(NotificationLite.next(defaultValue));
        }

        state.onAdded = new Action1<SubjectObserver<T>>() {
            public void call(SubjectObserver<T> o) {
                o.emitFirst(state.getLatest());
            }
        };
        state.onTerminated = state.onAdded;
        return new BehaviorSubject(state, state);
    }

    protected BehaviorSubject(OnSubscribe<T> onSubscribe, SubjectSubscriptionManager<T> state) {
        super(onSubscribe);
        this.state = state;
    }

    public void onCompleted() {
        Object last = this.state.getLatest();
        if (last == null || this.state.active) {
            Object n = NotificationLite.completed();
            SubjectObserver[] var3 = this.state.terminate(n);
            int var4 = var3.length;

            for(int var5 = 0; var5 < var4; ++var5) {
                SubjectObserver<T> bo = var3[var5];
                bo.emitNext(n);
            }
        }

    }

    public void onError(Throwable e) {
        Object last = this.state.getLatest();
        if (last == null || this.state.active) {
            Object n = NotificationLite.error(e);
            List<Throwable> errors = null;
            SubjectObserver[] var5 = this.state.terminate(n);
            int var6 = var5.length;

            for(int var7 = 0; var7 < var6; ++var7) {
                SubjectObserver bo = var5[var7];

                try {
                    bo.emitNext(n);
                } catch (Throwable var10) {
                    if (errors == null) {
                        errors = new ArrayList();
                    }

                    errors.add(var10);
                }
            }

            Exceptions.throwIfAny(errors);
        }

    }

    public void onNext(T v) {
        Object last = this.state.getLatest();
        if (last == null || this.state.active) {
            Object n = NotificationLite.next(v);
            SubjectObserver[] var4 = this.state.next(n);
            int var5 = var4.length;

            for(int var6 = 0; var6 < var5; ++var6) {
                SubjectObserver<T> bo = var4[var6];
                bo.emitNext(n);
            }
        }

    }

    int subscriberCount() {
        return this.state.observers().length;
    }

    public boolean hasObservers() {
        return this.state.observers().length > 0;
    }

    public boolean hasValue() {
        Object o = this.state.getLatest();
        return NotificationLite.isNext(o);
    }

    public boolean hasThrowable() {
        Object o = this.state.getLatest();
        return NotificationLite.isError(o);
    }

    public boolean hasCompleted() {
        Object o = this.state.getLatest();
        return NotificationLite.isCompleted(o);
    }

    public T getValue() {
        Object o = this.state.getLatest();
        return NotificationLite.isNext(o) ? NotificationLite.getValue(o) : null;
    }

    public Throwable getThrowable() {
        Object o = this.state.getLatest();
        return NotificationLite.isError(o) ? NotificationLite.getError(o) : null;
    }

    public T[] getValues(T[] a) {
        Object o = this.state.getLatest();
        if (NotificationLite.isNext(o)) {
            if (a.length == 0) {
                a = (Object[])((Object[])Array.newInstance(a.getClass().getComponentType(), 1));
            }

            a[0] = NotificationLite.getValue(o);
            if (a.length > 1) {
                a[1] = null;
            }
        } else if (a.length > 0) {
            a[0] = null;
        }

        return a;
    }

    public Object[] getValues() {
        T[] r = this.getValues((Object[])EMPTY_ARRAY);
        return r == EMPTY_ARRAY ? new Object[0] : r;
    }
}
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792132
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядька,

Вот в этом:

"One of the variants of the Subject is the BehaviorSubject. The BehaviorSubject has the characteristic that it stores the “current” value. This means that you can always directly get the last emitted value from the BehaviorSubject."

Я еще раз задам вопрос - зачем сделали два разных объекта, когда можно было БЫ требуемое поведение получить от Subject-а, просто задав ему параметр?

Subject(0) - обыкновенный subject
Subject(1) - BehaviorSubject()
Subject(5) - ReplaySubject()

Я уж молчу про названия.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792143
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,

Subject - это интерфейс, что значит Subject(1)?
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792148
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаАгнец за бортом,

Subject - это интерфейс, что значит Subject(1)?

https://rxjs-dev.firebaseapp.com/api/index/class/Subject

Ну, как бы не хочу тебе хамить по поводу "работы попроще" - сходи по ссылке. Официальная дока, как никак.

Там рядом со словом Subject есть квадратик синенький.

Да и не важно что это.

Я о концепции.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792191
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,

rxjs - это одна из реализаций вот этого , родной язык этой библиотеки - Java, а не JavaScript. Интерфейсов в JS пока еще не завезли, поэтому в JS-реализации Subject это класс. А в дарте, например, абстрактный класс.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792242
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаАгнец за бортом,

rxjs - это одна из реализаций вот этого , родной язык этой библиотеки - Java, а не JavaScript. Интерфейсов в JS пока еще не завезли, поэтому в JS-реализации Subject это класс. А в дарте, например, абстрактный класс.

Я не знаю, зачем ты постишь сюда очевидные вещи, о которых в курсе любой, кто зашёл на сайт rx-а.

Давай ты просто признаешь, что не читал в принципе первый пост с вопросом (ответа на который ты судя по всему не знаешь) и извинишься? Как тебе?
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792253
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомЯ не знаю, зачем ты постишь сюда очевидные вещи

Для оказалось совершенно неочевидным, что Subject - это интерфейс, который реализуют различные имплементаци.

Вот это писал ты, только что

авторSubject(0) - обыкновенный subject
Subject(1) - BehaviorSubject()
Subject(5) - ReplaySubject()


и совершенно очевидно, что ты когда это писал не вдуплял, что пишешь ерунду.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792255
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для тебя оказалось совершенно неочевидным...
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792261
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаАгнец за бортомЯ не знаю, зачем ты постишь сюда очевидные вещи

Для оказалось совершенно неочевидным, что Subject - это интерфейс, который реализуют различные имплементаци.

Вот это писал ты, только что

авторSubject(0) - обыкновенный subject
Subject(1) - BehaviorSubject()
Subject(5) - ReplaySubject()


и совершенно очевидно, что ты когда это писал не вдуплял, что пишешь ерунду.

Ты уверен, что понимаешь вопрос? У тебя "хватает ума его осмыслить"?

А то ты со своим быдловатым хамством "задолбал уже порядком".
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792274
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встретились два одиночества :)
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792276
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nonviolent Communication (abbreviated NVC , also called Compassionate Communication or Collaborative Communication ) is an approach to nonviolent living developed by Marshall Rosenberg beginning in the 1960s
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792277
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

По теме мысли есть?
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792279
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA Nonviolent Communication (abbreviated NVC , also called Compassionate Communication or Collaborative Communication ) is an approach to nonviolent living developed by Marshall Rosenberg beginning in the 1960s

Не переживай так.
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792280
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомskyANA,

По теме мысли есть?Есть, но что-то сыкотно излагать
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792281
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомskyANA Nonviolent Communication (abbreviated NVC , also called Compassionate Communication or Collaborative Communication ) is an approach to nonviolent living developed by Marshall Rosenberg beginning in the 1960s

Не переживай так.
Я не переживаю, я стебусь
...
Рейтинг: 0 / 0
Зачем в rx столько subject-ов?
    #39792285
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАгнец за бортомпропущено...


Не переживай так.
Я не переживаю, я стебусь


Чересчур тонко.
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Зачем в rx столько subject-ов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]