Size: a a a

Angular - русскоговорящее сообщество

2021 March 30

B

Bretbas in Angular - русскоговорящее сообщество
ок, если на форму, то опять внутри валидатора setError делать?)) на котролах
источник

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
да при чем тут вообще сетэррор. почитай про кастомные валидаторы
источник

АП

Авраам Петрович... in Angular - русскоговорящее сообщество
Bretbas
по сути, холодные потоки отличаются тем, что они "собираются" из более низкоуровневых горячих потоков и также, холодных потоков. Но в самом низу будут только горячие потоки
и соответственно холодные потоки сами по себе становятся так называемыми подготовками к старту, который заведет subscribe, когда подпишутся на нее
горячие потоки - это возбудители процесса эммитов в поток. Дальше - уже композиция холодных потоков)
очень интересный взгляд. сейчас попробую взглянуть через такую призму
источник

B

Bretbas in Angular - русскоговорящее сообщество
Авраам Петрович
очень интересный взгляд. сейчас попробую взглянуть через такую призму
это чисто моя точка зрения, я во фронте не очень прям силен, но это то что я увидел в этом) rx
источник

АП

Авраам Петрович... in Angular - русскоговорящее сообщество
Smooth Operator
можно с такого начать
опа, прям под ключ, спасибо сейчас прочитаю вдумчиво
источник

АП

Авраам Петрович... in Angular - русскоговорящее сообщество
Smooth Operator
можно с такого начать
к сожалению это "промиз-стайл", когда каждый метод оборачивает предыдущий, чтобы в конце вызвать следующий... ну то есть это сработает в одном месте фронта, вызвав запрос в апи на код языка

выведем во втором месте - и снова хттп запрос на код языка. и так далее далее далее. придется втыкать shareReplay() и вернуться к началу вопроса о запросе который выполняется единожды за все приложение.

ибо, запрос кода языка должен вернуть другой результат, если мы во время работы программы сменим этот язык и при этом не делать второго запроса при втором вызове formatDate()
источник

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
Авраам Петрович
к сожалению это "промиз-стайл", когда каждый метод оборачивает предыдущий, чтобы в конце вызвать следующий... ну то есть это сработает в одном месте фронта, вызвав запрос в апи на код языка

выведем во втором месте - и снова хттп запрос на код языка. и так далее далее далее. придется втыкать shareReplay() и вернуться к началу вопроса о запросе который выполняется единожды за все приложение.

ибо, запрос кода языка должен вернуть другой результат, если мы во время работы программы сменим этот язык и при этом не делать второго запроса при втором вызове formatDate()
может быть потому что жс - про асинхронщину?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Авраам Петрович
к сожалению это "промиз-стайл", когда каждый метод оборачивает предыдущий, чтобы в конце вызвать следующий... ну то есть это сработает в одном месте фронта, вызвав запрос в апи на код языка

выведем во втором месте - и снова хттп запрос на код языка. и так далее далее далее. придется втыкать shareReplay() и вернуться к началу вопроса о запросе который выполняется единожды за все приложение.

ибо, запрос кода языка должен вернуть другой результат, если мы во время работы программы сменим этот язык и при этом не делать второго запроса при втором вызове formatDate()
я вроде написал, с этого можно начать
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
если у вас узкое место в сервисе языка, оптимизируйте его
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
воткните там shareReplay и выдавайте всем один и тот же обс
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
например
источник

АП

Авраам Петрович... in Angular - русскоговорящее сообщество
Smooth Operator
я вроде написал, с этого можно начать
уточню, я не выкатываю претензию что это плохо. или что ты не помог, я лишь хочу сказать остановился ровно на этом же и задался вопросом "как это сделать мудро" а не "как это сделать"
мудро значит "применить нужные знания" а не "применить знания"
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
при этом публичные интерфейсы сервисов не изменятся
источник

АП

Авраам Петрович... in Angular - русскоговорящее сообщество
Smooth Operator
воткните там shareReplay и выдавайте всем один и тот же обс
совершенно верно - одно из решений - shareReplay() которое мне попалось.
однако оно делает будущие вызовы метода бесполезными, разве нет?

если реплей разместить в сервисе языков - то понадобится уже второй метод, который делает это же но без реплея когда потребуется. и при этом всем как-то перебивает действие старого т.к. вызовы старого зашиты в коде

а если реплей разместить в сервисе дат, и в последствии в других сервисах - то и реплей тоже будет только для них работать, мне так кажется, а значит число запросов не уменьшится
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Авраам Петрович
совершенно верно - одно из решений - shareReplay() которое мне попалось.
однако оно делает будущие вызовы метода бесполезными, разве нет?

если реплей разместить в сервисе языков - то понадобится уже второй метод, который делает это же но без реплея когда потребуется. и при этом всем как-то перебивает действие старого т.к. вызовы старого зашиты в коде

а если реплей разместить в сервисе дат, и в последствии в других сервисах - то и реплей тоже будет только для них работать, мне так кажется, а значит число запросов не уменьшится
чем бесполезным
зачем второй метод
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Авраам Петрович
совершенно верно - одно из решений - shareReplay() которое мне попалось.
однако оно делает будущие вызовы метода бесполезными, разве нет?

если реплей разместить в сервисе языков - то понадобится уже второй метод, который делает это же но без реплея когда потребуется. и при этом всем как-то перебивает действие старого т.к. вызовы старого зашиты в коде

а если реплей разместить в сервисе дат, и в последствии в других сервисах - то и реплей тоже будет только для них работать, мне так кажется, а значит число запросов не уменьшится
> а если реплей разместить в сервисе дат, и в последствии в других сервисах - то и реплей тоже будет только для них работать, мне так кажется, а значит число запросов не уменьшится

вообще не понял
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
откуда такой вывод
источник

АП

Авраам Петрович... in Angular - русскоговорящее сообщество
Smooth Operator
чем бесполезным
зачем второй метод
если я правильно понял концепцию shareReplay()

loadLanguages = () =>  http.get(url).pipe(shareReplay());
getLanguages = () =>  http.get(url);

ибо сколько бы раз я потом не вызывал loadLanguages() я всегда буду получать первое значение, что не имеет смысла, если я могу "добавить язык" или удалить его
источник

АП

Авраам Петрович... in Angular - русскоговорящее сообщество
условно юзер может быть в системе 15 минут и допустим перезагрузит страницу браузера чтобы loadLanguages() снова сходил в апишку. но делать приложение не работающим по этому критерию вроде не слишком разумно
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Авраам Петрович
если я правильно понял концепцию shareReplay()

loadLanguages = () =>  http.get(url).pipe(shareReplay());
getLanguages = () =>  http.get(url);

ибо сколько бы раз я потом не вызывал loadLanguages() я всегда буду получать первое значение, что не имеет смысла, если я могу "добавить язык" или удалить его
концепция этого оператора что он 1 раз подпишется на вышестоящий обсервабл и будет его эмиты бродкастить всем подписчикам что ниже него
источник