2016-07-26 1 views

ответ

-1

только использование оператор zip.

import {Observable} from 'rxjs/Observable'; 
import 'rxjs/add/observable/interval'; 
import 'rxjs/add/operator/take'; 
import 'rxjs/add/observable/zip'; 

const obs = Observable.interval(1000).take(7); 
const obs2 = Observable.interval(2000).take(6); 

const source = Observable.zip(
    obs, 
    obs2, 
    (o1, o2) => ({o1: o1, o2: o2}) 
); 

source.subscribe(
    (x) => console.log(JSON.stringify(x)), 
    (error) => console.log('error:', error), 
() => console.log('completed') 
); 

вне положенное:

{"o1":0,"o2":0} 
{"o1":1,"o2":1} 
{"o1":2,"o2":2} 
{"o1":3,"o2":3} 
{"o1":4,"o2":4} 
{"o1":5,"o2":5} 
completed 
+0

Это не дает ответа на вопрос! – dovidweisz

0

Вот пример из RxJS 4 Документах https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/thendo.md

var selector = function (x, y) { return x + ", " + y; }; 

var source = Rx.Observable.when(
    Rx.Observable.interval(250).and(Rx.Observable.of("A", "B", "C")).thenDo(selector), 
    Rx.Observable.interval(300).and(Rx.Observable.of("a", "b")).thenDo(selector) 
); 

var subscription = source.subscribe(
    function (x) { 
     console.log('Next: ' + x); 
    }, 
    function (err) { 
     console.log('Error: ' + err); 
    }, 
    function() { 
     console.log('Completed'); 
    }); 

// => Next: 0, A 
// => Next: 0, a 
// => Next: 1, B 
// => Next: 1, b 
// => Next: 2, C 
// => Completed 

 Смежные вопросы

  • Нет связанных вопросов^_^