Объедините два ответа ajax в RXJS

Я все еще изучаю 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);
    });
});

person Madhu    schedule 11.06.2016    source источник


Ответы (1)


Вам нужен 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 см. здесь

person fahadash    schedule 11.06.2016