
Vladimir
17.05.2018
17:04:41
ок

Sergey
17.05.2018
17:05:09

Vladimir
17.05.2018
17:05:39
напрямую console.log(NODE_ENV);

Sergey
17.05.2018
17:06:26

Google

Vladimir
17.05.2018
17:09:02

Artyom
17.05.2018
17:14:16
@Wrouds
http://uxmovement.com/forms/the-best-place-for-error-messages-on-forms/
Вообще хочу найти какой-нибудь крутой cheat sheat по UX и распечатать себе


Oleg
17.05.2018
17:35:16
Видимо слишком сложный вопрос, вы неправильно поняли.
Есть 5 параллельных запрсоов. Если токены отвалились и запросы ушли, то я потом 5 раз сделаю refreshToken (неважно как, тоже запросы).
В идеале я эту ситуацию вижу так, что уходит 5 параллельных запросов. Любой первый обработавший из них получает ошибку авторизации. Все остальные стопаются и не обрабатываются. 1 раз уходит запрос на рефреш токены и только после этого происходит повтор тех 5 запросов...
Накидал пример, с использованием axios и его interceptors - https://pastebin.com/Qd4jZq9p
смысл в том, что для тех запросов, которые ты хочешь перезапустить, можно отдавать deferred промис, вместо reject, и то место в коде, где запрос вызван, вместо обработки ошибки в catch, будет ждать, пока токен не рефрешнется и запрос не отправится заново


Flashbang ?
17.05.2018
17:38:49
Накидал пример, с использованием axios и его interceptors - https://pastebin.com/Qd4jZq9p
смысл в том, что для тех запросов, которые ты хочешь перезапустить, можно отдавать deferred промис, вместо reject, и то место в коде, где запрос вызван, вместо обработки ошибки в catch, будет ждать, пока токен не рефрешнется и запрос не отправится заново
Спасибо, посмотрю

Cenator
17.05.2018
17:45:02

Nugzar
17.05.2018
17:54:13
Какая подсветка прикольная))
Накидал пример, с использованием axios и его interceptors - https://pastebin.com/Qd4jZq9p
смысл в том, что для тех запросов, которые ты хочешь перезапустить, можно отдавать deferred промис, вместо reject, и то место в коде, где запрос вызван, вместо обработки ошибки в catch, будет ждать, пока токен не рефрешнется и запрос не отправится заново
Чёт не понятно, у тебя resilve & reject глобальные переменные?
Или saveResolve хотел использовать?

Сергей
17.05.2018
17:59:08
@syabro за вопросы по реакту, лучше отправляй не в бан, а ко мне))

dima
17.05.2018
17:59:49

Nikita
17.05.2018
17:59:52

Google

Artyom
17.05.2018
18:00:02

Nugzar
17.05.2018
18:00:31
А что вымершая публикация делает в закреплённом?

Max
17.05.2018
18:01:37
а права на пин только у измайлова
а его как обычно хуй кто поймает

Oleg
17.05.2018
18:02:04

Nugzar
17.05.2018
18:02:26
Ну я так и понял

Andrey
17.05.2018
18:02:57

Сергей
17.05.2018
18:05:09
Саги говно

Sander
17.05.2018
18:05:19
почему?

Nugzar
17.05.2018
18:06:01

Сергей
17.05.2018
18:06:28
почему?
Магия.
Бесконечный цикл.
Неочевидность.

Nugzar
17.05.2018
18:07:04
Или попробуй на callback повесть yeld
Как например в socket.onmessage

Oleg
17.05.2018
18:08:01

Nugzar
17.05.2018
18:08:28
А да точно, чёт я тупанул

Oleg
17.05.2018
18:08:38
Это конечно не идеальный вариант, концепт (вдруг там что ломается каждую секунду)

Nugzar
17.05.2018
18:08:41
2 секунды не много?

Oleg
17.05.2018
18:09:10
Это концепт

Google

Nugzar
17.05.2018
18:10:30
А что если после старта refreshToken но до его прихода новый запрос вернёт 403?

Oleg
17.05.2018
18:11:09
Уйдет в очередь, она разрядится только после успешного рефреша

Nugzar
17.05.2018
18:12:03
Но второй refreshToken пойдет же

Oleg
17.05.2018
18:13:33
Можно добавить проверок, на первый 403 - запоминаем что токен не валидный, по успеху рефреша, запоминаем что валидный, и новые не запускаем рефреши, ну и то что рефреш в процессе

Nugzar
17.05.2018
18:14:37
Угу

Flashbang ?
17.05.2018
18:15:06

Nugzar
17.05.2018
18:15:46

Flashbang ?
17.05.2018
18:16:13

Nugzar
17.05.2018
18:16:48
Ну да
Ппц, куда смотрят дизигнеры

Vlad
17.05.2018
18:19:40

Dmitry
17.05.2018
18:38:27

?
17.05.2018
18:38:33

?
17.05.2018
18:38:45
Чем cажи

Dmitry
17.05.2018
18:39:05
не хочу санки
мне надо что бы был ивент
и отдельно его реализация
а санки наебывают эту схему

Mike
17.05.2018
18:39:29

Dmitry
17.05.2018
18:39:48
ну тип я ща юзаю санки потому что нету кейсов для чего-то сложного
но это мне каежтся неправильный подход

Google

Dmitry
17.05.2018
18:40:28
обзерверы вроде бы ок, но обычно для них надо больше кода чем в сагах
а саги это куча магии непонятной

Admin
ERROR: S client not available

Сергей
17.05.2018
18:56:46

Timofey
17.05.2018
18:57:23
Как правильно у react-router при клике на NavLink фетчить данные по новому роуту?
Сначала NavLink обертывал дочерний эл-т и менял через to только itemId, а хэндлер клика дочернего эл-та фетчил данные с использованием измененногл через роут itemId. Такой способ норм?
Щас игрался с ветчингом данных на само изменение роута, но штука опасная и фетчинг выполняется, что очевидно, на любое изменение роута, не только на изменение itemId, но и других параметров.

Сергей
17.05.2018
18:57:56

Dmitry
17.05.2018
18:58:14
Ивенты нужны для того что бы разделить обьявление и реализацию асинхронных операций

Сергей
17.05.2018
18:58:31

Dmitry
17.05.2018
18:58:31
код выходит менее связным и легче тестируется

Timofey
17.05.2018
18:58:37

Сергей
17.05.2018
18:58:51

Dmitry
17.05.2018
18:58:56

Сергей
17.05.2018
18:59:12
это как положить название функции в один файл
а тело функции в другой
и потом думать как связать это для использования

Dmitry
17.05.2018
18:59:51
легче теститить асинхроныные операции, легче манипулировать со всякими тротлингами и тейк лейтес
и вообще отменой действий

Сергей
17.05.2018
19:00:05
отмена действий это большой вопрос

Cenator
17.05.2018
19:00:13

Сергей
17.05.2018
19:00:20

Dmitry
17.05.2018
19:00:36

Google

Timofey
17.05.2018
19:00:38

Dmitry
17.05.2018
19:00:50
а с санками у тебя выходит все в одном, и нельзя подменить ничего
прямая связь

Cenator
17.05.2018
19:00:57

Сергей
17.05.2018
19:01:18
вот пример:
операция состоит из 10 маленьких суб операций
некоторые из них это запросы к сервер
отмена операции по факту отменит остаток запросов (неизвестный)
и оставит все в возможно сломанном состоянии

Igor
17.05.2018
19:01:21
что такое компат?

andretshurotshka?❄️кде
17.05.2018
19:01:23

Сергей
17.05.2018
19:01:25

Dmitry
17.05.2018
19:01:43
реализацию санка

Сергей
17.05.2018
19:01:52
еффектор
я так до сих пор не понял, какую проблему он пытается решить, кроме типизации
реализацию санка
зачем?
санк это просто функция
зачем тебе может понадобится подменять реализацию функции?