我的 mapTo 语句有什么问题

What is wrong with my mapTo Statement

试图建立一些东西,但卡住了,错过了这里的任何错误。我想跟踪按钮点击,但从 #zip 输入中获取值,所以这就是我选择 mapTo 的原因。当我删除 mapTo 时,我可以跟踪点击并更改我在订阅函数中的语句,以使用 #zip 输入的内容更新结果 div 文本(就像我在 mapTo) 这让我感到困惑,因为我认为这表明语法没问题。

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

jsbin

如果我明白你想做什么,你正在尝试用事件发生时 $('#zip') 的当前值更新 $('#result')

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

如果您希望它始终是实际值,您将需要一些将回调作为参数的运算符。例如 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