code: function syncEvent(emitters, eventName, context, callback) {
    var thisKey = '';
    var eventListener = getListener(eventName, context);
    emitters.forEach(function (item) {
      thisKey += '_' + item.constructor.name;
      item.on(eventName, eventListener);
    });
    context[thisKey] = {emittersLength: emitters.length};
    
    function getListener(eventName, context) {
      return function listener () {
        var argsKey = '_' + eventName + Array.prototype.slice.call(arguments).join('_');
        var elements = context[thisKey];
        if (typeof elements[argsKey] === 'undefined') {
          elements[argsKey] = 0;
          return;
        }
        else if (elements[argsKey] < elements.emittersLength-2){
          elements[argsKey] = elements[argsKey] + 1;
          return;
        }
        delete elements[argsKey];
        callback.apply(context, Array.prototype.slice.call(arguments));
      };
    }
  }
docs: Sync events: executes the callback when the event (with the same parameters) have been called in all emitters.