esnext-async
Version:
Patterns for asynchronous computation in ES.next
67 lines (43 loc) • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _zenObservable = require('zen-observable');
var _zenObservable2 = _interopRequireDefault(_zenObservable);
var _promise_queue = require('esnext-async/lib/promise_queue');
var _promise_queue2 = _interopRequireDefault(_promise_queue);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = function (_Observable) {
(0, _inherits3.default)(_default, _Observable);
function _default(subscribe) {
var _context;
(0, _classCallCheck3.default)(this, _default);
var _this = (0, _possibleConstructorReturn3.default)(this, (_default.__proto__ || (0, _getPrototypeOf2.default)(_default)).call(this, subscribe));
_this.queue = new _promise_queue2.default();
_this.subscribe({
next: (_context = _this.queue).publish.bind(_context),
error: (_context = _this.queue).throw.bind(_context)
});
return _this;
}
(0, _createClass3.default)(_default, [{
key: 'then',
value: function then() {
var _queue$consume;
return (_queue$consume = this.queue.consume()).then.apply(_queue$consume, arguments);
}
}]);
return _default;
}(_zenObservable2.default);
exports.default = _default;