Javascript 在RXJS中组合两个ajax响应

Javascript 在RXJS中组合两个ajax响应,javascript,rxjs,rxjs5,Javascript,Rxjs,Rxjs5,我仍在学习RXJS(刚刚开始),我知道我的问题将是初学者。我正在尝试结合来自外部呼叫的两个响应。假设我拨打call1和call2,我应该能够订阅一个组合响应 下面是我的代码 var arrayWeather =['http://apidev.accuweather.com/currentconditions/v1/250111.json?language=en&apikey=hoArfRosT1215', 'http://apidev.accuweather.com/currentcon

我仍在学习RXJS(刚刚开始),我知道我的问题将是初学者。我正在尝试结合来自外部呼叫的两个响应。假设我拨打call1和call2,我应该能够订阅一个组合响应

下面是我的代码

var arrayWeather =['http://apidev.accuweather.com/currentconditions/v1/250111.json?language=en&apikey=hoArfRosT1215', 'http://apidev.accuweather.com/currentconditions/v1/4-204108_1_AL.json?language=en&apikey=hoArfRosT1215'];
var refreshClickStream = Rx.Observable.fromEvent(document.querySelector('.refresh'), 'click');

refreshClickStream.subscribe(function(e){
  Rx.Observable.fromArray(arrayWeather)
    .flatMap(function(datathings){ 
        return Rx.DOM.Request.get(datathings)
    })
    .subscribe(function(data){
        console.log(data.response);
    });
});

您需要一个
Zip

var combined = Rx.Observable.zip(refreshClickStream, anotherStream);
然后订阅合并的

var subscription = combined.subscribe(
  function (x) {
  },
  function (err) {
  },
  function () {
  });
您还可以在
Zip
中添加一个函数,告诉Zip操作如何将两者结合起来

var combined = Rx.Observable.zip(refreshClickStream, anotherStream, function (firstStreamItem, secondStreamItem) {
    return { first: firstStreamItem, second: secondStreamItem };
  });
有关RxJS Zip的更多信息