{"_id":"first-event","_rev":"4-8ba30c87a7f7f98408c2a36c447bc916","name":"first-event","description":"Race event-emitter events, resolves the first to occur. Promise-based ee-first","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"first-event","version":"1.0.0","description":"Race event-emitter events, resolves the first to occur. Promise-based ee-first","main":"index.js","scripts":{"test":"lab --assert code --threshold 100","lint":"standard","format":"standard --format"},"repository":{"type":"git","url":"https://github.com/tjmehta/first-event.git"},"keywords":["event","emitter","eventemitter","events","first","race","handler","ee","ee-first","ee-first-promise","promise"],"author":{"name":"Tejesh Mehta"},"license":"MIT","bugs":{"url":"https://github.com/tjmehta/first-event/issues"},"homepage":"https://github.com/tjmehta/first-event","devDependencies":{"code":"^1.5.0","lab":"^6.2.0","promise-polyfill":"^3.1.0","standard":"^5.4.1"},"dependencies":{"101":"^1.2.0","assert-args":"^1.0.3"},"gitHead":"07a5ecb47abff4d7deb3e69d1e4fe3eea2fa86bb","_id":"first-event@1.0.0","_shasum":"3d8675b339ea6bd82ff14f7091c6c19ba2b89906","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.5.0","_npmUser":{"name":"tjmehta","email":"tj_mehta@hotmail.com"},"maintainers":[{"name":"tjmehta","email":"tj_mehta@hotmail.com"}],"dist":{"shasum":"3d8675b339ea6bd82ff14f7091c6c19ba2b89906","tarball":"https://registry.npmjs.org/first-event/-/first-event-1.0.0.tgz","integrity":"sha512-42kUcRMaGhvYBn/xtad077NfcS6hc5sbib3tlna2BwRLMcPU1aUKfGhrE2eVRId6Gp+h+B//Cw0Wi454G2yrmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICYeDCxPfn5epuP3jA7vdHq4w/i0r7KJx7JEiU4DWqzxAiEA4UMdPD5wdc5OXDUd4DmIu/NMIRvvwH4WId12vgGsp6g="}]}}},"readme":"# first-event [![Build Status](https://travis-ci.org/tjmehta/first-event.svg?branch=master)](https://travis-ci.org/tjmehta/first-event) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](http://standardjs.com/)\nRace event-emitter events, resolves the first to occur. Promise-based [ee-first](https://github.com/jonathanong/ee-first)\n\n# Installation\n```js\nnpm install --save first-event\n```\n\n# Usage\n#### Error Example\n```js\nvar first = require('first-event')\nvar ee = new EventEmitter()\n\nfirst(ee, ['error', 'foo', 'bar'])\n  .catch(function (err) {\n    // error from emit 'error' gets sent here\n    console.log(err) // [ Error: 'boom' ]\n  })\n\nee.emit('error', new Error('boom'))\n// below does nothing, bc it happenned second\nee.emit('foo', 1)\n```\n#### Event Example\n```js\nvar first = require('first-event')\nvar ee = new EventEmitter()\n\nfirst(ee, ['error', 'foo', 'bar'])\n  .then(function (firstEvent) {\n    console.log(firstEvent.ee)    // [ EventEmitter: ... ]\n    console.log(firstEvent.event) // 'foo'\n    console.log(firstEvent.args)  // [ 'one', 'two', 'three' ]\n  })\n\nee.emit('foo', 'one', 'two', 'three')\n// below does nothing, bc it happenned second\nee.emit('bar', 1)\n```\n#### Race Events from different EventEmitters\n```js\nvar first = require('first-event')\nvar ee = new EventEmitter()\nvar ee2 = new EventEmitter()\n\nPromise.race(\n  first(ee, ['error', 'foo', 'bar'])\n  first(ee2, ['error', 'foo', 'bar'])\n).then(function (firstEvent) {\n  console.log(firstEvent.ee)    // [ EventEmitter: ... ] === ee2\n  console.log(firstEvent.event) // 'foo'\n  console.log(firstEvent.args)  // [ 'one', 'two', 'three' ]\n})\n\nee2.emit('foo', 'one', 'two', 'three')\n// below does nothing, bc it happenned second\nee.emit('bar', 1)\n```\n### Cancel\n```js\nvar first = require('first-event')\nvar ee = new EventEmitter()\nvar eventPromise = first(ee, ['error', 'foo', 'bar'])\n\neventPromise\n  .then(function (data) {\n    // never happens, bc event handlers were cancelled below\n  }).catch(function () {\n    // never happens, bc event handlers were cancelled below\n  })\n\n// cancel and cleanup event handlers\neventPromise.cancel()\n// below will do nothing, bc the event handlers were removed\nee.emit('foo', 1)\n```\n\n# License\nMIT","maintainers":[{"name":"tjmehta","email":"tejesh.mehta@gmail.com"}],"time":{"modified":"2022-06-18T01:13:15.795Z","created":"2016-01-28T07:17:16.761Z","1.0.0":"2016-01-28T07:17:16.761Z"},"homepage":"https://github.com/tjmehta/first-event","keywords":["event","emitter","eventemitter","events","first","race","handler","ee","ee-first","ee-first-promise","promise"],"repository":{"type":"git","url":"https://github.com/tjmehta/first-event.git"},"author":{"name":"Tejesh Mehta"},"bugs":{"url":"https://github.com/tjmehta/first-event/issues"},"license":"MIT","readmeFilename":"README.md","users":{"alanshaw":true}}