Size: a a a

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

2020 February 03

АО

Алексей Охрименко in Angular - русскоговорящее сообщество
Yuri Katkov
Робяты, как вы дружите промисы с обсерваблами, когда юзаете ng-bootstrap Modal dialog?
Как вариант (c AbortController)

switchMap(
 () =>
   new Observable(observer => {
     const abortController = new AbortController()
     fetch(url, { signal: abortController.signal })
       .then(res => {
         observer.next(res)
         observer.complete()
       })
       .catch(err => observer.error(err))
     return () => abortController.abort()
   })
)


Но это при условии что вы контролируете создание promise-ов
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
было:

modalRef.result
 .then(idForDeletion => {
   this.itemsRepository.delete(idForDeletion)
     .pipe(catchError(this.handleFailure.bind(this)))
     .subscribe(() => {
       this.reload();
       this.notificationsService.success();
     });
 })
 .catch(this.reload.bind(this));
источник

IL

Ihor Levchenko in Angular - русскоговорящее сообщество
Time is the side effect
Ну это пока не нужно роли всякие проверять, или еще что-то
Если эту инфу сувать в jwt, она может быть неактуальной, и надо либо делать запрос за данными юзера каждый раз, либо заставлять юзера поменять жвт на новый
это тонкое замечание, спасибо

в общем я понимаю что JWT это в общем скорее бесполезный оверхед для SPA/веб приложений, чем преимущество
Так как токен надо обновлять (иначе он теряет смысл), хранение рефреш токена в локалСторе ставит его вообще под секьюрное сомнение…
В общем я прихожу к тому, что нет ничего более надежного, чем обычная сессия 😄
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Станет:

from(modalRef.result)
 .pipe(switchMap(this.itemsRepository.delete),
   catchError(this.reload.bind(this))
 )
 .subscribe(() => {
   this.reload();
   this.notificationsService.success();
 });
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Andrey Vaydich
https://stackblitz.com/edit/angular-tdaedf?file=src%2Fapp%2Fchild-array%2Fchild-array.component.ts

Не рабочий пример кода, но суть проблемы он передает.
Если распечатать parent form, то там будет следующее

{
  items: {
     items: []
  }
}

А мне нужно, чтобы при такой же организации отдельного компонента, массив был в самом первом items (без лишней вложенности).

{
  items: []
}

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

S

Smooth Operator in Angular - русскоговорящее сообщество
Andrey Vaydich
https://stackblitz.com/edit/angular-tdaedf?file=src%2Fapp%2Fchild-array%2Fchild-array.component.ts

Не рабочий пример кода, но суть проблемы он передает.
Если распечатать parent form, то там будет следующее

{
  items: {
     items: []
  }
}

А мне нужно, чтобы при такой же организации отдельного компонента, массив был в самом первом items (без лишней вложенности).

{
  items: []
}

Этот лишний уровень вложенности не валиден при отправке у меня. Поэтому я впилил костыль, который его удаляет.
сначала создал вложенность
потом подписался на значение со вложенностью и отправляешь их)
источник

Ti

Time is the side effect in Angular - русскоговорящее сообщество
Ihor Levchenko
это тонкое замечание, спасибо

в общем я понимаю что JWT это в общем скорее бесполезный оверхед для SPA/веб приложений, чем преимущество
Так как токен надо обновлять (иначе он теряет смысл), хранение рефреш токена в локалСторе ставит его вообще под секьюрное сомнение…
В общем я прихожу к тому, что нет ничего более надежного, чем обычная сессия 😄
Все так, до определенного момента жвт очень удобен, но при усложнении начинает получать проблемы, которые в обычной сессии уже решены

Но возможно есть какие-то особые плюсы, о которых я не знаю)
источник

AV

Andrey Vaydich in Angular - русскоговорящее сообщество
Smooth Operator
сначала создал вложенность
потом подписался на значение со вложенностью и отправляешь их)
подскажите, как без вложенности сделать, чтобы вся валидация и тп работало
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Andrey Vaydich
подскажите, как без вложенности сделать, чтобы вся валидация и тп работало
зачем там форм группа?)
источник

AV

Andrey Vaydich in Angular - русскоговорящее сообщество
Smooth Operator
зачем там форм группа?)
я с так организованными формами не оч, поэтому делал по примеру
источник

IL

Ihor Levchenko in Angular - русскоговорящее сообщество
Time is the side effect
Все так, до определенного момента жвт очень удобен, но при усложнении начинает получать проблемы, которые в обычной сессии уже решены

Но возможно есть какие-то особые плюсы, о которых я не знаю)
ты дал исчерпывающее убеждение моим еще 5 минут назад не устоявшимся взглядам на это, за это большое спасибо! 😄
источник

S

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

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Алексей Охрименко
Как вариант (c AbortController)

switchMap(
 () =>
   new Observable(observer => {
     const abortController = new AbortController()
     fetch(url, { signal: abortController.signal })
       .then(res => {
         observer.next(res)
         observer.complete()
       })
       .catch(err => observer.error(err))
     return () => abortController.abort()
   })
)


Но это при условии что вы контролируете создание promise-ов
выглядит как переизобретение from()
источник

S

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

AV

Andrey Vaydich in Angular - русскоговорящее сообщество
Smooth Operator
ну подумай
так я пытался, не придумал ничего... вот и спрашиваю помощи
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Andrey Vaydich
так я пытался, не придумал ничего... вот и спрашиваю помощи
зачем там формгруппа
источник

S

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

АО

Алексей Охрименко in Angular - русскоговорящее сообщество
Yuri Katkov
выглядит как переизобретение from()
from/fromPromise не отменяет промис а тупо игнорирует результат его выполнения
источник

YK

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

AE

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