我想为users
资源创建一个observable。我希望以一种方式创建它,当我以[{1}}或newUser
获取事件时,我的updateUser
数组会相应更新。
users
仅适用于第一个const usersList = new Observable(USERS_ARRAY) // Returns list of users
const newUser = new Observable([NEW_USER, NEW_USER...]) // Returns value every time new user join
const users = Observable.combineLatest(usersList, newUser)
.map(data => [...data[0], data[1]])
事件,因为输出值不会存储在任何位置。
如何使用rxjs正确完成?
答案 0 :(得分:0)
您可以使用BehaviorSubject。 Subject实现了Observer和Observable接口,因此您可以监听它并将数据推送到它。
所以你可以尝试类似的东西
const usersList = new Observable(USERS_ARRAY) // Returns list of users
const newUser = new BehaviorSubject([NEW_USER, NEW_USER...]) // Returns value every time new user join
const users = Observable.combineLatest(usersList, newUser)
.map(data => [...data[0], data[1]])
// when you want to add a new user
newUser.next(<your new NewUser Array>);
答案 1 :(得分:0)
您可以使用扫描来存储数据,同时不断更新数据。
let userArray=[user1,user2...]
newUser.scan((acc,curr)=>[...acc,curr],userArray)
.subscribe(console.log)