Code coverage report for src/operator/combineAll.ts

Statements: 100% (4 / 4)      Branches: 100% (0 / 0)      Functions: 100% (1 / 1)      Lines: 100% (3 / 3)      Ignored: none     

All files » src/operator/ » combineAll.ts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 191                             1 33    
import {CombineLatestOperator} from './combineLatest';
import {Observable} from '../Observable';
 
/**
 * Takes an Observable of Observables, and collects all observables from it. Once the outer observable
 * completes, it subscribes to all collected observables and "combines" their values, such that:
 *  - every time an observable emits, the returned observable emits
 *  - when the returned observable emits, it emits all of the most recent values by:
 *    - if a `project` function is provided, it is called with each recent value from each observable in whatever order they arrived,
 *      and the result of the `project` function is what is emitted by the returned observable
 *    - if there is no `project` function, an array of all of the most recent values is emitted by the returned observable.
 * @param {function} [project] an optional function to map the most recent values from each observable into a new result. Takes each of the
 *   most recent values from each collected observable as arguments, in order.
 * @returns {Observable} an observable of projected results or arrays of recent values.
 */
export function combineAll<T, R>(project?: (...values: Array<any>) => R): Observable<R> {
  return this.lift(new CombineLatestOperator(project));
}