Size: a a a

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

2019 October 02

И

Илья | 😶 in Angular - русскоговорящее сообщество
Arthur Bobrovskih
interval(1000).pipe(
 switchMap(() => this.apiService.call())
 skipWhile(res => !res.status),
 take(1),
).subscribe(res=> console.log(res));
Как говорил пожилой @dersizes нужно слать не по интервалу (кто его знает, сколько займёт выполнение запроса)
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
В случае с интервалом он будет слать постоянно  запросы без ожидания ответа
источник

LT

L T in Angular - русскоговорящее сообщество
источник

LT

L T in Angular - русскоговорящее сообщество
Не знаю как быть с значением t.
источник

RC

Roman Chernyshev in Angular - русскоговорящее сообщество
Илья | 😶
В случае с интервалом он будет слать постоянно  запросы без ожидания ответа
а как правильно это обойти?
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
Roman Chernyshev
а как правильно это обойти?
выполнять одну и ту же функцию по таймауту после выполнения запроса
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
Запрос => Ответ => Повторить
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
Грубо говоря рекурсивное повторение функции
источник

LT

L T in Angular - русскоговорящее сообщество
График отрисовывается по значением t и v.
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Roman Chernyshev
короли rxjs, подскажите как сделать. У меня есть запрос на сервер, который возвращает объект со статусом. Он отображается на юай. Мне надо с некоторой периодичностью делать этот запрос пока статус объекта не перейдет в нужный. Как это по красоте сделать?
function retryUntil<T>(source: () => Observable<T>, condition: (value: T) => boolean): Observable<T> {
   return source().pipe(
       switchMap(value => condition(value)
           ? of(value)
           : concat(of(value), retryUntil(source, condition))
       ),
   );
}
источник

S

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

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Еще один наркоманский вариант
function retryUntil<T, O>( 
 project: (index: number) => Observable<O>,
 condition: (data: O, index: number) => boolean
): Observable<O> {
 return of(undefined).pipe(
   expand((data: O, i: number): Observable<O> =>
     i > 0 && condition(data, i)
       ? EMPTY
       : project(i)),
   filter(condition)
 );
}

// пример
const retryLoadUntil = params =>
 retryUntil(() => load(params), notNull);
source.pipe(switchMap(retryLoadUntil))
источник

LT

L T in Angular - русскоговорящее сообщество
Вертихвост キバ
Еще один наркоманский вариант
function retryUntil<T, O>( 
 project: (index: number) => Observable<O>,
 condition: (data: O, index: number) => boolean
): Observable<O> {
 return of(undefined).pipe(
   expand((data: O, i: number): Observable<O> =>
     i > 0 && condition(data, i)
       ? EMPTY
       : project(i)),
   filter(condition)
 );
}

// пример
const retryLoadUntil = params =>
 retryUntil(() => load(params), notNull);
source.pipe(switchMap(retryLoadUntil))
Вы не против, если я лично вам напишу сообщение.
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Лучше тут 🙂
источник

S

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

LT

L T in Angular - русскоговорящее сообщество
Ок.
источник

LT

L T in Angular - русскоговорящее сообщество
У меня есть задание по ангуляру. Решить не получается никак. Я делал задание наподобие to do. А вот графиками да ещё с  json-файлами не решал. Сейчас скину задачу. Я сверстал его, даже график, но он не вытягивает данные из json-файла.
источник

LT

L T in Angular - русскоговорящее сообщество
источник

LT

L T in Angular - русскоговорящее сообщество
Через json server пытался сделать.
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Вертихвост キバ
Еще один наркоманский вариант
function retryUntil<T, O>( 
 project: (index: number) => Observable<O>,
 condition: (data: O, index: number) => boolean
): Observable<O> {
 return of(undefined).pipe(
   expand((data: O, i: number): Observable<O> =>
     i > 0 && condition(data, i)
       ? EMPTY
       : project(i)),
   filter(condition)
 );
}

// пример
const retryLoadUntil = params =>
 retryUntil(() => load(params), notNull);
source.pipe(switchMap(retryLoadUntil))
Встречаешь очередное заклинание от лиса, идешь читать очередной неизвестный оператор
источник