UNPKG

react-native-mock-tmp-build

Version:

A fully mocked and test-friendly version of react native

46 lines (40 loc) 1.48 kB
/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ const EventSubscription = require('./EventSubscription'); /** * EmitterSubscription represents a subscription with listener and context data. */ class EmitterSubscription extends EventSubscription { /** * @param {EventEmitter} emitter - The event emitter that registered this * subscription * @param {EventSubscriptionVendor} subscriber - The subscriber that controls * this subscription * @param {function} listener - Function to invoke when the specified event is * emitted * @param {*} context - Optional context object to use when invoking the * listener */ constructor(emitter, subscriber, listener, context) { super(subscriber); this.emitter = emitter; this.listener = listener; this.context = context; } /** * Removes this subscription from the emitter that registered it. * Note: we're overriding the `remove()` method of EventSubscription here * but deliberately not calling `super.remove()` as the responsibility * for removing the subscription lies with the EventEmitter. */ remove() { this.emitter.removeSubscription(this); } } module.exports = EmitterSubscription;