UNPKG

thundercats

Version:
41 lines (31 loc) 1.21 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports['default'] = waitFor; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _rx = require('rx'); var _rx2 = _interopRequireDefault(_rx); var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _utils = require('./utils'); var debug = (0, _debug2['default'])('thundercats:waitFor'); var slice = Array.prototype.slice; function waitFor() { return _rx2['default'].Observable.from(arguments).tapOnNext(function (observable) { return (0, _utils.isObservable)(observable) ? true : new Error('waitFor only take observables but got %s', observable); }).map(function (observable) { return observable.publish(); }).tapOnNext(function (observable) { return observable.connect(); }).toArray().tap(function () { return debug('starting waitFor'); }).flatMap(function (arrayOfObservables) { return _rx2['default'].Observable.combineLatest(arrayOfObservables, function () { return slice.call(arguments); }); }).doOnNext(function () { return debug('waitFor onNext!'); }); } module.exports = exports['default'];