All Projects → callmecavs → Knot.js

callmecavs / Knot.js

A browser-based event emitter, for tying things together.

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Knot.js

Adapt
Advanced Developer Async Programming Toolkit
Stars: ✭ 26 (-74%)
Mutual labels:  event
Lily
LÖVE Async Asset Loader
Stars: ✭ 64 (-36%)
Mutual labels:  event
Kotlin Agendacalendarview
Android calendar library provides easy to use widget with events
Stars: ✭ 81 (-19%)
Mutual labels:  event
Breadcast
Small Broadcast Receiver Library for Android
Stars: ✭ 15 (-85%)
Mutual labels:  event
Danf
Danf is a Node.js full-stack isomorphic OOP framework allowing to code the same way on both client and server sides. It helps you to make deep architectures and handle asynchronous flows in order to help in producing scalable, maintainable, testable and performant applications.
Stars: ✭ 58 (-42%)
Mutual labels:  event
Opendataday
Open Data Day website
Stars: ✭ 70 (-30%)
Mutual labels:  event
Recoil
Asynchronous coroutines for PHP 7.
Stars: ✭ 765 (+665%)
Mutual labels:  event
Android Meetup 2016 08 07
Stars: ✭ 98 (-2%)
Mutual labels:  event
Hack Day
An event organised by GNU/Linux Users' Group, NIT Durgapur. Visit
Stars: ✭ 64 (-36%)
Mutual labels:  event
Rxbus
Android reactive event bus that simplifies communication between Presenters, Activities, Fragments, Threads, Services, etc.
Stars: ✭ 79 (-21%)
Mutual labels:  event
Postix
Cashdesk system used at Chaos Communication Congress
Stars: ✭ 42 (-58%)
Mutual labels:  event
Project Sauron
Tools to create a Native Windows Audit Collection Platform. Active Directory example provided
Stars: ✭ 58 (-42%)
Mutual labels:  event
Bekit
bekit框架致力于解决在应用开发中的公共性痛点,已有“事件总线”、“流程引擎”、“服务引擎”。其中“流程引擎”可作为分布式事务解决方案saga模式的一种实现,并且它很轻量不需要服务端、不需要配置,就可直接使用。
Stars: ✭ 71 (-29%)
Mutual labels:  event
Alf.io
alf.io - The open source ticket reservation system for conferences, trade shows, workshops, meetups
Stars: ✭ 862 (+762%)
Mutual labels:  event
V Dragged
Vue directive plugin for drag event detection.
Stars: ✭ 84 (-16%)
Mutual labels:  event
Js Collider
Java network (NIO) application framework: performance and scalability.
Stars: ✭ 25 (-75%)
Mutual labels:  event
Eventpp
Minimal C++ Event Bus
Stars: ✭ 69 (-31%)
Mutual labels:  event
Geotic
Entity Component System library for javascript
Stars: ✭ 97 (-3%)
Mutual labels:  event
Xer.cqrs
A lightweight and easy-to-use CQRS + DDD library
Stars: ✭ 96 (-4%)
Mutual labels:  event
Ease
It's magic.
Stars: ✭ 1,213 (+1113%)
Mutual labels:  event

Knot.js

Knot.js on NPM Knot.js Downloads on NPM Standard JavaScript Style

A browser-based event emitter, for tying things together.

Usage

Knot was developed with a modern JavaScript workflow in mind. To use it, it's recommended you have a build system in place that can transpile ES6, and bundle modules. For a minimal boilerplate that does so, check out outset.

Follow these steps to get started:

Then dig into the API.

Install

Using NPM, install Knot.js, and add it to your package.json dependencies.

$ npm install knot.js --save

Call

Simply import Knot, then call it.

  • Passed no parameters, Knot will return a new emitter
  • Passed an object, Knot will extend it to include the emitter methods

Note that the this context in the event handlers:

  • Is the object passed in, if one was provided
  • Otherwise, it is the emitter itself
// import Knot

import knot from 'knot.js'

// create a new emitter
// in the handlers, 'this' refers to the emitter

const emitter = knot()

// extend an existing object, transforming it into an emitter
// in the handlers, 'this' refers to the Class

const object = new Class()
const extended = knot(object)

API

All methods are chainable.

Knot exposes the following API:

.on(name, handler)

Add a handler to a new or existing event.

// add an anonymous function as a handler

emitter.on('name', () => {
  // ...
})

// add a named function as a handler

const handler = () => {
  // ...
}

emitter.on('name', handler)

.once(name, handler)

Add a handler, that fires only once, to a new or existing event.

// add an anonymous function as a handler

emitter.once('name', () => {
  // ...
})

// add a named function as a handler

const handler = () => {
  // ...
}

emitter.once('name', handler)

.off(name[, handler])

Remove a specific handler from an event.

// handler must be a named function

const handler = () => {
  // ...
}

emitter.off('name', handler)

Remove all of an event's handlers.

emitter.off('name')

.emit(name[, arguments])

Emit an event, firing all of its handlers.

emitter.emit('name')

Optionally, include arguments that will be passed to each handler.

// accept arguments in handler

emitter.on('name', (a, b, c, d) => console.log(a, b, c, d))

// include arguments in call to emit

emitter.emit('name', 1, '2', [3], {})

// LOG: 1 '2' [3] {}

Browser Support

Tested in all modern browsers and IE10+.

License

MIT. © 2017 Michael Cavalea

Built With Love

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].