Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

emitter-master

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

emitter-master

Support for offline event emitters, event, listener

  • 1.0.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

emitter-master

为公司编写的离线发送订阅,剥离出来形成一个很小的库,暂时没时间大量测试,反正有问题会修,因为我司用的就是这个。

基本使用

支持离线队列的事件发射器

import { Emitter } from "emitter-master"

Emitter.sender("A<->B", 123) // 先发送在接收也没问题,这个是该库的特点

const ret = await Emitter.receiver("A<->B") // 不论是否有值都会立即返回,没有值的情况下会返回null
// 或
Emitter.receiver("A<->B",function(val){
    console.log(val)
})

// 清楚
Emitter.clear("A<->B")

sender有一个别名叫做trigger

receiver有一个别名叫做listener

还有一个once表示只监听一次

根据你自己的场景来决定使用那个名称可以带来更好的语义。

使用场景:

  • 两个距离很远的组件直接通信,支持A先发数据,然后A被销毁,B创建的时候可以接收到A销毁前的数据
  • 一个组件需要根据特定来源来执行特定操作,如果不是特定来源就跳过特定操作,由于在receiver没有回调的时候会立即返回不会阻塞,这个场景非常适合用这个库解决
  • 接入ws数据,这个普通的发布订阅就够了

vue和react中的推荐规范

首先要明确的是该库与框架无关,但是现在前端很多都是用vue和react来构建网站,所以这里给出我的推荐使用方式

**建议一:**定义存储事件名称的event_name.ts 文件,该文件只定义事件名称和事件名称的注释,注意每个事件名称都要有注释,否则这样做将毫无意义,事件名称以 A->B 的形式表示A组件会项B组件发送数据,以A<->B 的形式表示A和B会互相发送数据,下面是示例

// 这里描述事件是干啥的,这样在ide中是可以通过快速预览来查看详情的
const CompA_CompB = "CompA->CompB"

export {
	CompA_CompB
}

建议二: 对于非组件与组件的通信依然要明确指定来源和目标,例如我在Axios的封装中向组件CompA发,那么可以命名为:Axios->CompA

**建议三:**记得在组件卸载之前清除事件

示例

import {Emitter} from "emitter-master"
Emitter.sender( "a-b" , true); // 把这行注释掉 ret 将会是null,不注释就是true

( async function ()
 {
    const ret = await Emitter.receiver( "a-b" );
    console.log("ret")
    console.log( ret ); // true
} )();

Keywords

FAQs

Package last updated on 01 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc