An event manager very simple
Compatibility
All browser | Backend (Nodejs) | Mobile (React Native) |
---|---|---|
Compatibility with all javascript project
Install
npm install jetemit
Import
const { on, emit } = require("jetemit");
//or
import { on, emit } from "jetemit";
Use
Call
import { emit } from "jetemit";
/**
* emit(name, value);
* name is string
* value any
*/
emit("TIME", "2018-12-01 12:30");
Listener
import { on } from "jetemit";
/**
* on(name,function)
* name is string
*/
on("TIME", time => {
console.log(time);
});
import { once } from "jetemit";
/**
* Like on but run one time
*/
once("TIME", time => {
console.log(time);
});
Unsubscribe listener
import { on } from "jetemit";
/**
* on return unsubscribe function
*/
const unsubscribe = on("TIME", time => {
console.log(time);
});
unsubscribe();
Using unsubscribeOf function
import { unsubscribeOf } from "jetemit";
/**
* Unsubscribe all subscribed functions for TIME
*/
unsubscribeOf("TIME");
or
/**
* Unsubscribe a Function which subscribed for TIME
*/
unsubscribeOf("TIME", timeFunction);
Refund from all listener
Please see this sample:
// file a.js
import { on } from "jetemit";
on("CACHE_STSTEM_HEALTH", () => {
return { state: "OK", id: "CACHE_SYSTEM_1" };
});
// file b.jd
import { on } from "jetemit";
on("CACHE_STSTEM_HEALTH", () => {
return { state: "OK", id: "CACHE_SYSTEM_2" };
});
// file c.js
import { on, emit } from "jetemit";
const status = emit("CACHE_STSTEM_HEALTH");
console.log(status);
/*
[
{ state: "OK", id: "CACHE_SYSTEM_1" },
{ state: "OK", id: "CACHE_SYSTEM_2" }
]
*/
Donate
BTC: 1NV1sjQnXwuyHgxQ8G5eWprhxsD5A8yN6r