Javascript 在RXJS中组合两个ajax响应
我仍在学习RXJS(刚刚开始),我知道我的问题将是初学者。我正在尝试结合来自外部呼叫的两个响应。假设我拨打call1和call2,我应该能够订阅一个组合响应 下面是我的代码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
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的更多信息