Rx JS: объединить несколько операторов карты - PullRequest
1 голос
/ 03 мая 2020

Я хочу, чтобы в одной трубе было две карты, например:

take(1),
map(({ users } => users.filter(user => user.uid = uid)),
map((data: User) => {
   let user = Object.assign({}, data)

   if ('_seconds' in user.createdAt) {
      user.createdAt = new Date(user.createdAt._seconds * 1000)
   }

   return user
})

У меня никогда не было опыта работы с Rx Js, но, думаю, это выглядит так неправильно. Какой правильный способ сделать это?

1 Ответ

2 голосов
/ 03 мая 2020

С этим проблем нет. Однако я не понимаю, почему вам нужно иметь несколько операторов map. Вы можете объединить их так:

take(1),
map(({ users }) => {
   const data = users.filter(user => user.uid = uid); // something should be wrong here, data is an array.
   let user = Object.assign({}, data)

   if ('_seconds' in user.createdAt) {
      user.createdAt = new Date(user.createdAt._seconds * 1000)
   }

   return user
})
...