RxJS:结合多个地图运算符

时间:2020-05-03 17:03:32

标签: rxjs

我想在一个管道中有两个地图,像这样:

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
})

我以前从未有过RxJ的经验,但是我想这看起来太不对了。正确的方法是什么?

1 个答案:

答案 0 :(得分:2)

没有问题。但是,我不明白为什么需要多个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
})