UNPKG

marbles

Version:

Front-end framework for routing, http, and data handling

42 lines (38 loc) 904 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* @flow weak */ var __callbacks = []; /** * @memberof Marbles * @mixin * @desc Simple FLUX Dispatcher */ var Dispatcher = { /** * @method * @param {function} callback Function to call events with * @returns {Number} Dispatch index */ register: function register(callback) { __callbacks.push(callback); var dispatchIndex = __callbacks.length - 1; return dispatchIndex; }, /** * @method * @param {Object} event An event object * @returns {Promise} Resolves when all registered callbacks have been called */ dispatch: function dispatch(event) { var promises = __callbacks.map(function (callback) { return new Promise(function (resolve) { resolve(callback(event)); }); }); return Promise.all(promises); } }; exports["default"] = Dispatcher; module.exports = exports["default"];