我的mapTo语句有什么问题

时间:2016-12-06 23:07:40

标签: javascript rxjs rxjs5

尝试构建一些东西但是卡住了并且错过了这里的错误。我想跟踪按钮点击次数,但是从#zip输入中获取值,这就是我选择mapTo的原因。当我删除mapTo时,我可以跟踪点击并更改我在subscribe函数中的语句,以使用#zip输入的内容更新结果div文本(就像我在mapTo中所做的那样)这让我感到困惑,因为我觉得这表明语法还可以。

   Rx.Observable.fromEvent(document.getElementById('btn'),'click')
     .mapTo($('#zip').val())
      .subscribe(function(zipCode){
         $('#result').text(zipCode);
      });

jsbin

1 个答案:

答案 0 :(得分:2)

如果我了解您要执行的操作,则会在事件发生时尝试使用当前值$('#result')更新$('#zip')

运算符mapTo()将单个值作为参数。然后使用该值而不是来自其源的每个值。实际上,这意味着当您创建Observable链时(甚至在您订阅它之前).mapTo($('#zip').val())初始化一次

如果您希望它始终是实际值,则需要一些将回调作为参数的运算符。例如map()

Rx.Observable.fromEvent(document.getElementById('btn'), 'click')
  .map(function(val) {
    return $('#zip').val();
  })
  .subscribe(function(zipCode){
    $('#result').text(zipCode);
  });

您的最新演示:http://jsbin.com/qepalo/1/edit?html,js,console,output