Rxjs:为什么这个数组流没有收到新值
Rxjs: Why this stream of array not recieving new values
我在构造函数中使用 Observable.from() 创建了数组流并在构造函数中订阅了它,数组正在更新但订阅方法不起作用我想,我没有得到 console.log为数据,这里是代码
@Component({
selector: 'my-app',
template: `
<input type="text" required
[(ngModel)]="inputValue" name="inputValue" >
<button (click)="addto()">submit</button>
})
这是class
export class first{
proxySubject;
inputValue: string;
array = [];
constructor(){
this.proxySubject = Observable.from(this.array)
this.proxySubject.subscribe(function(data){
console.log(data))
}
addto(){
this.array.push(this.inputValue)
}
}
Observable.from()
只检查一次提到的数组,每次你创建一个给定可观察对象的新订阅时。您正在寻找的是一个可观察的数组。其中一种方法是创建自定义 addItem()
函数,它将 .push()
新项目添加到数组并调用 mySubject.next(myArray)
。使用此设置,您可以订阅 mySubject
以在数组内容更改时收到通知。
编辑:
myArray = [];
mySubject = new BehaviourSubject(myArray); // store last version for new subscribtions
addItem(item) {
myArray.push(item);
mySubject.next(myArray)
}
mySubject.subscribe(arr => console.log(arr))
编辑 2 - 观察者:
// doesnt really help anything
let myObserverRefference;
observable = Observable.create(function (observer) {
myObserverRefference = observer;
});
addItem() {
myObserverRefference.next(myArray);
}
毫无价值,在 knockout.js 中,这是核心功能,通常只有几行代码,其中包含您想要的数组/对象更改事件的所有功能。为什么事情往往会因为这些琐碎的任务而变得过于复杂,我不明白。
我在构造函数中使用 Observable.from() 创建了数组流并在构造函数中订阅了它,数组正在更新但订阅方法不起作用我想,我没有得到 console.log为数据,这里是代码
@Component({
selector: 'my-app',
template: `
<input type="text" required
[(ngModel)]="inputValue" name="inputValue" >
<button (click)="addto()">submit</button>
})
这是class
export class first{
proxySubject;
inputValue: string;
array = [];
constructor(){
this.proxySubject = Observable.from(this.array)
this.proxySubject.subscribe(function(data){
console.log(data))
}
addto(){
this.array.push(this.inputValue)
}
}
Observable.from()
只检查一次提到的数组,每次你创建一个给定可观察对象的新订阅时。您正在寻找的是一个可观察的数组。其中一种方法是创建自定义 addItem()
函数,它将 .push()
新项目添加到数组并调用 mySubject.next(myArray)
。使用此设置,您可以订阅 mySubject
以在数组内容更改时收到通知。
编辑:
myArray = [];
mySubject = new BehaviourSubject(myArray); // store last version for new subscribtions
addItem(item) {
myArray.push(item);
mySubject.next(myArray)
}
mySubject.subscribe(arr => console.log(arr))
编辑 2 - 观察者:
// doesnt really help anything
let myObserverRefference;
observable = Observable.create(function (observer) {
myObserverRefference = observer;
});
addItem() {
myObserverRefference.next(myArray);
}
毫无价值,在 knockout.js 中,这是核心功能,通常只有几行代码,其中包含您想要的数组/对象更改事件的所有功能。为什么事情往往会因为这些琐碎的任务而变得过于复杂,我不明白。