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 中,这是核心功能,通常只有几行代码,其中包含您想要的数组/对象更改事件的所有功能。为什么事情往往会因为这些琐碎的任务而变得过于复杂,我不明白。