@frp_ru

Страница 130 из 420
Nikita
07.08.2017
11:53:43
https://clojuredocs.org/clojure.core/-%3E

https://clojuredocs.org/clojure.core/-%3E%3E

наверное самые часто используемые

из либ тоже найду, момент

Google
Nikita
07.08.2017
11:55:50
традиционный routing API для http https://github.com/weavejester/compojure

вот еще, но это плохой пример :) концептуально

http://sqlkorma.com/

Denis
07.08.2017
12:01:09
http://squeryl.org/index.html

illiatshurotshka❄️
07.08.2017
12:02:07
со стороны ТК нет

? animufag ?
07.08.2017
12:29:13
пишу
например в какой ситуации?

kana
07.08.2017
12:33:12
когда бойлерплейта много. Там не всегда подходят функции. В re-frame есть макрос (reg-sub :key (fn [db _] (:key db)) для субскрайберов, и вот часто (очень часто) приходилось писать такие сабсы, где ключ и путь совпадали. Ну я и писал макрос (reg-key-sub :key)

define-ы часто пишутся разными создателями либ

сам использую plumbing, он дает несколько полезных макросов типа letk и fn->

? animufag ?
07.08.2017
12:35:24
define-ы часто пишутся разными создателями либ
конструкция объявляющая функцию?

kana
07.08.2017
12:36:26


Google
kana
07.08.2017
12:36:44
не только функцию (ну хотя функцию она тоже создает, но вообще создает глобальный роут)

andretshurotshka?❄️кде
08.08.2017
03:59:43
/stat@combot

Combot
08.08.2017
03:59:43
combot.org/chat/-1001071213089

Aleksei
08.08.2017
04:24:16
А как бот Flood ratio рассчитывает?)

andretshurotshka?❄️кде
08.08.2017
04:26:07
уже кидали вроде сюда

ща найду

чет не нашел)

Aleksei
08.08.2017
04:35:17
Ну ладно, ни чего страшного) мне просто казалось, что такая вещь трудноизмерима т.к. субъективна.

Gleb
08.08.2017
06:48:50
Привет, как в rx называется map в который мы могли бы что то вернуть при этом чтобы следующий оператор проигнорировал в параметрах то что мы вернули, а получил предудущий

andretshurotshka?❄️кде
08.08.2017
06:50:38
do ?

Gleb
08.08.2017
06:51:01
черт как же дебильно выразился action$ .ofType(SOME_TYPE) .someMap(params => {type: "bla_bla"}) . flatMap(params => ) В общем что бы someMap вернуло что то но при этом в flatMap мы получили params основные

неет речь идет о redux-observable , мне нужно промежуточно вернуть экшн но при этом сохранить парамтеры в следующем flatMap

andretshurotshka?❄️кде
08.08.2017
06:51:35
Основные?

?

Gleb
08.08.2017
06:51:54
Кароче как do только при этом чтобы вернуть можно было что то

но проигнорировать это далее

черт такое вообще возмонжо?

только если конкат какой нибудль

andretshurotshka?❄️кде
08.08.2017
06:52:15
Не понимаю)

Gleb
08.08.2017
06:53:53
мне кароче хочется разнести логику с токеном и если что задиспатчить что он истек

Google
Gleb
08.08.2017
06:54:01
но при этом далее как бы подождать его апдейта

Дмитрий
08.08.2017
06:54:07
Если нужно одновременно задиспатчить экшн и продолжить цепь обработки этих данных, то это решается через chain

andretshurotshka?❄️кде
08.08.2017
06:54:43
chain это flatMap

Gleb
08.08.2017
06:55:29
Нукась сейчас гляну chain. а подскажи пожалуйста это вообще по практис наверное маразм сначало проверять токен а потом дожидаться апдейта, по идеи надо наверное вляпаться что он истек а потом как нибудь repet'нуть запрос

Дмитрий
08.08.2017
06:55:52
Не, чейн это действительно flatMap

redux-observable - это event-driven архитектура, просто диспатчи соответствующие эвенты

Gleb
08.08.2017
06:58:24
А есть ли возможность сначало словить 401 а потом как бы задиспатчить заново евент обновив токен? за этими дейтсвиями у меня просто сам евент уже теряется

repeatWhen я сначлао думал, но видимо тоже нет , потому что rxHttpFetch(request) .retryWhen(err => err /** тут логика какая то но не суть**/ .delay(2000) ) Вот тут у меня повторится ошибка а незапрос

То есть через 2 секунды я получу ту же ошибку но не делая сам запрос

andretshurotshka?❄️кде
08.08.2017
07:03:57
Так мб просто retry

Gleb
08.08.2017
07:06:10
Вобщем вопрос такой как можно восставноить то событие на котором мы словили 401, дождавшись обновления токена

нукась сейчас гляну retry

Gleb
08.08.2017
07:11:29
Так я и заглушку поэтому тестовую и сделал retryWhen => delay action$ .ofType(HTTP_REQUEST) .map(action => action.payload) .flatMap(({request}) => rxHttpFetch(request) .retryWhen(err =>err.delay(2000) ) ) .mergeMap(() => ...) catch() и я стабильно вместо того чтобы делать запрос rxHttpFetch каждый раз через 2 секунды, просто получаю если скажем перед делеем в do распечатать err просто ошибку и все

но почему запрос не повторяется мне не потнятно

В самом httpFetch там код стандартный export const rxHttpFetch = (rxHttpRequest: HttpRequest): Observable<any> => Observable.from((async (): Promise<HttpFetchResponse> => {

andretshurotshka?❄️кде
08.08.2017
07:12:19
Так стоп

Зачем err.delay(2000)

тебе надо сделать запрос, когда токен обновился

У тебя есть стрим токенов?

Google
Gleb
08.08.2017
07:12:57
Дада, это заглушкеа просто логику проверить вместо апдйета токена

просто подождать две секунды и сделатьзапрос

andretshurotshka?❄️кде
08.08.2017
07:13:11
Ну так err не надо трогать

Gleb
08.08.2017
07:13:15
вместо делей я подставлю уже запрос

andretshurotshka?❄️кде
08.08.2017
07:13:20
() => Observable.delay(2000)

Gleb
08.08.2017
07:13:35
Спасибо, пойду проверю

Admin
ERROR: S client not available

Gleb
08.08.2017
07:14:15
Просто err придется потрогать чтобы посмотреть что status === 401

Дмитрий
08.08.2017
07:15:28
Чисто в стримах конечно фигово управлять потоком с ошибками Error ветки не хватает

andretshurotshka?❄️кде
08.08.2017
07:19:53
() => Observable.delay(2000)
хотя в доке err юзают

?

() => Observable.delay(2000)
Мб так не сработает

Gleb
08.08.2017
07:20:29
Property 'delay' does not exist on type 'typeof Observable'

И да в доках err юзают

Блин тогда придется длинючий конский стрим делать, типа проверяем токен, деламе его апдейт а уже потом запрос

такое не декомпозируется у кого нибудь в проектах на более мелкие?

Уродство? action$ .ofType(HTTP_REQUEST) .combineLatest(Observable.fromPromise(validateToken())) .flatMap(([action, token]) => rxHttpFetch(action.payload.request)) .takeUntil(action$.ofType(CANCEL))

andretshurotshka?❄️кде
08.08.2017
07:47:03
а скинь код rxHttpFetch

Gleb
08.08.2017
07:50:40
https://github.com/radiosilence/redux-rx-http/blob/master/src/utils.ts

Вот тут полглядел

Google
andretshurotshka?❄️кде
08.08.2017
07:56:49
хмм, так он не lazy походу

Gleb
08.08.2017
07:57:54
Т.е?

andretshurotshka?❄️кде
08.08.2017
07:58:29
ну от него отписаться и подписаться заново нельзя

он всегда будет Observable.from(Promise.reject(someError))

Gleb
08.08.2017
07:59:46
На fromPromise тогда переписать

andretshurotshka?❄️кде
08.08.2017
08:00:00
не в этом проблема

мб на create?

https://www.learnrxjs.io/operators/creation/create.html

Gleb
08.08.2017
08:00:51
Все сейчас перепишу я понял

а тогда и на err можно цепляться будет?

andretshurotshka?❄️кде
08.08.2017
08:01:27
наверн

Gleb
08.08.2017
09:11:20
Да так и есть

ну все круто

спасибо!

Теперь пойду заебусь с тестами

Тестировать rx по доке redux-observable немного дебильно, я где то видел по интереснее тесты с TestSheduler

andretshurotshka?❄️кде
08.08.2017
14:31:37
cycle/time

Страница 130 из 420