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

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

Зачем?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Покажи в каком месте 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
27.03.2019, 11:41
    #39792132
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
Лысый дядька,

Вот в этом:

"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
27.03.2019, 11:47
    #39792143
Лысый дядька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
Агнец за бортом,

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

А то ты со своим быдловатым хамством "задолбал уже порядком".
...
Рейтинг: 0 / 0
27.03.2019, 13:34
    #39792274
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
Встретились два одиночества :)
...
Рейтинг: 0 / 0
27.03.2019, 13:35
    #39792276
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
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
27.03.2019, 13:35
    #39792277
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
skyANA,

По теме мысли есть?
...
Рейтинг: 0 / 0
27.03.2019, 13:36
    #39792279
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
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
27.03.2019, 13:37
    #39792280
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
Агнец за бортомskyANA,

По теме мысли есть?Есть, но что-то сыкотно излагать
...
Рейтинг: 0 / 0
27.03.2019, 13:37
    #39792281
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
Агнец за бортом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
27.03.2019, 13:38
    #39792285
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем в rx столько subject-ов?
skyANAАгнец за бортомпропущено...


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


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


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