【问题标题】:Do something when pushed into an array, observable推入数组时做某事,可观察
【发布时间】:2017-05-11 15:29:17
【问题描述】:

我有一个数组 x 和一个来自 x(arrObs) 的 Observable。有一个按钮,当用户点击按钮时,一个随机数被推入数组。我希望在将值推入数组时从数组中打印该值。

http://jsbin.com/sovuyipuju/edit?js,console,output

var x = [1,2,3,4];
var clicks = Rx.Observable.fromEvent(document.querySelector('#button1'),'click');
clicks
  .map(function(y){return Math.floor(Math.random()*50)})
  .subscribe(function(z){  x.push(z);});

arrObs = Rx.Observable.from(x);
arrObs
  .map(function(x){  return x*2;})
  .subscribe(function(value){console.log(value);
});

【问题讨论】:

  • 你有什么问题?
  • 每当单击按钮时,都会将一个随机值推入数组。我希望数组 observable 的订阅在点击时运行
  • 那么,您是要我们为您编写该代码吗?或者你写过它并且遇到困难?请提出问题。
  • 我已经在数组上写了 observable。根据我的理解,每当按下新项目时,它都应该记录。当单击按钮时,值被推送到数组中。但它没有记录

标签: javascript arrays rxjs observable


【解决方案1】:

使用纯js:

var arr=[];
arr.oldpush=arr.push.bind(arr);
arr.push=function(values...){
  values.forEach(console.log);
  this.oldpush(...values);
};

(我只是认为没有必要为此使用框架......)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2015-03-05
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    相关资源
    最近更新 更多