【发布时间】:2016-03-27 08:19:36
【问题描述】:
我正在使用 Promise 或 Observable 学习编程和异步,这有点难以理解 我有 2 个数据源、帖子(带有发布它的用户 ID)和用户,我想要实现的只是显示带有一些用户信息(如图像、名称等)的帖子,我该如何继续?
这是我获取资源的方式:
allUsers() {
return new Promise((resolve, reject) => {
this.rootRef.child('users').once('value', snapshot => {
const data = snapshot.val()
const users = Object.keys(data).map(id => new User(id, data[id]))
resolve(users)
})
})
}
发帖
allPosts(): Subject<Post[]> {
const postsObservable = new BehaviorSubject<Post[]>(null)
this.rootRef.child('posts').on('value', snapshot => {
const data = snapshot.val()
const posts = Object.keys(data)
.map(id => new Post(id, data[id]))
.sort((lhs, rhs) => rhs.date.getTime() - lhs.date.getTime())
postsObservable.next(posts)
})
return postsObservable
}
当用户发布内容时,我是否需要添加图像和名称等用户数据,或者是否可以这样做。
【问题讨论】:
-
您可以使用
combineLatestzip或withLatestFrom之类的东西来组合您的数据。
标签: asynchronous angular rxjs