Size: a a a

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

2019 October 20

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Smooth Operator
публиковать в npm будешь?
нет, но вроде нашел, yarn link
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
по RxJS задумался. Есть у меня несколько асинхронных источников данных, и есть функция, вычисляющая по ним какое-то чиселко. Чиселко мы выводим на экран, но еще на экран выводим историю последних 20-ти вычислений.
Пока я все делаю в лоб - сделал сервис history, организованный как очередь, в который складываю каждый результат вычислений.
С другой стороны, в rx есть же ReplaySubject, есть shareReplay, которые оба хранят историю. Может быть можно как-то с их помощью обойтись без дополнительного HistoryService?
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Yuri Katkov
по RxJS задумался. Есть у меня несколько асинхронных источников данных, и есть функция, вычисляющая по ним какое-то чиселко. Чиселко мы выводим на экран, но еще на экран выводим историю последних 20-ти вычислений.
Пока я все делаю в лоб - сделал сервис history, организованный как очередь, в который складываю каждый результат вычислений.
С другой стороны, в rx есть же ReplaySubject, есть shareReplay, которые оба хранят историю. Может быть можно как-то с их помощью обойтись без дополнительного HistoryService?
ReplaySubject(20) и будет последних 20 вроде бы.
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
да, но как их вывести потом? я имею в виду, как подвязать их в мой компонент, выводящий историю на экран?
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Yuri Katkov
по RxJS задумался. Есть у меня несколько асинхронных источников данных, и есть функция, вычисляющая по ним какое-то чиселко. Чиселко мы выводим на экран, но еще на экран выводим историю последних 20-ти вычислений.
Пока я все делаю в лоб - сделал сервис history, организованный как очередь, в который складываю каждый результат вычислений.
С другой стороны, в rx есть же ReplaySubject, есть shareReplay, которые оба хранят историю. Может быть можно как-то с их помощью обойтись без дополнительного HistoryService?
scan, который будет собирать значение в ограниченный по длине буфер. Типа fifo
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
точно же, скан!
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
спасибо!
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Но если честно я бы лучше сервисом делал. В отладке удобнее.
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Anton Shvets
Но если честно я бы лучше сервисом делал. В отладке удобнее.
а если сервисом, то вроде как надо share() делать...
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Anton Shvets
scan, который будет собирать значение в ограниченный по длине буфер. Типа fifo
getHistory<T>(dataSource$: Observable<T>, historySize = environment.historySize): Observable<T[]> {
 return dataSource$.pipe(
   bufferCount(historySize),
   scan((history, curr) => {
     return history.concat(curr);
   }, [])
 );
}
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
гмм, что-то я не то делаю, кажется, на выходе всегда массив длины 1, хотя historySize ==5
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Yuri Katkov
гмм, что-то я не то делаю, кажется, на выходе всегда массив длины 1, хотя historySize ==5
bufferCount аккумулирует значения по historySize и потом эмитит массив
источник

S

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

YK

Yuri Katkov in Angular - русскоговорящее сообщество
ай, точно
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
то есть внутри скана надо самому делать очередь
источник

OK

Oleg Konev in Angular - русскоговорящее сообщество
Привет. Немного оффтоп. Кто-то пробовал использовать remotedebug-ios-webkit-adapter для дебага под виндой сайтов, открытых в ios сафари? Получаю ошибку
remotedebug-ios-webkit-adapter failed to run with the following error: ios_webkit_debug_proxy.exe not found. Please install 'scoop install ios-webkit-debug-proxy'

при запуске remotedebug_ios_webkit_adapter. Но при выполнении
scoop install ios-webkit-debug-proxy

получаю
 
is already installed
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Yuri Katkov
то есть внутри скана надо самому делать очередь
Да. Все buffer это что-то вроде упаковки в ящики. А тебе нужен постоянный накопитель.
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Yuri Katkov
то есть внутри скана надо самому делать очередь
просто класть в массив и обрезать длину
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Smooth Operator
просто класть в массив и обрезать длину
getHistory<T>(dataSource$: Observable<T>): Observable<T[]> {
 return dataSource$.pipe(
   scan((acc: T[], curr: T) => {
     const res = acc.concat(curr);
     if (res.length > 5) {
       res.shift();
     }
     return res;
   }, [])
 );
}
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Вопрос про библиотеки. Собираю свой пакет - все норм. Добавляю его в другой проект через npm link ..пытаюсь собрать, падает ошикба error TS2451: Cannot redeclare block-scoped variable 'ngDevMode'.
источник