
Company News
AWS Security Hub Adds Socket for Supply Chain Security
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.
@tb-app/pub-sub
Advanced tools
@tb-app/pub-sub这是一个基于 JavaScript 的发布订阅库。
yarn add @tb-app/pub-sub
// 或
npm i @tb-app/pub-sub
订阅名称为 name 的消息,并返回字符串 token。token 可以用来取消产生此 token 的订阅
import { subscribe, unsubscribe } from '@tb-app/pub-sub';
const callback = function (name, data) {
console.log(name, data);
};
const token = subscribe('say', callback);
// 可以通过 token 取消订阅
unsubscribe(token);
发布名称为 name 的消息,并返回布尔值。true, 表示成功触发指定消息的回调。 false, 要触发的消息不存在或消息没有回调。
import { subscribe, publish } from '@tb-app/pub-sub';
const callback = function (name, data) {
console.log(name, data);
};
const token = subscribe('say', callback);
setTimeout(() => {
publish('say', 'hello !');
}, 1000);
清除指定名称的消息订阅
import { subscribe, clearSubscriptions } from '@tb-app/pub-sub';
const callback = function (name, data) {
console.log(name, data);
};
subscribe('say', callback);
setTimeout(() => clearSubscriptions('say'), 1000);
清除指定的名称或 token 或函数对应的订阅。返回结果为布尔值,true 表示成功取消订阅。false,表示取消失败(订阅不存在)。
import { subscribe, unsubscribe } from '@tb-app/pub-sub';
const callback = function (name, data) {
console.log(name, data);
};
const token = subscribe('say', callback);
setTimeout(() => {
// 通过消息名称取消订阅
unsubscribe('say');
// 通过 token 取消订阅
// unsubscribe(token);
// 通过函数取消订阅
unsubscribe(callback);
}, 1000);
清除所有订阅
clearAllSubscriptions();
得到指定名称消息的所有回调函数数组
import { subscribe, unsubscribe } from '@tb-app/pub-sub';
const callback = function (name, data) {
console.log(name, data);
};
subscribe('say', callback);
// 返回 [callback]
getSubscriptions('say');
订阅消息,但是相同的消息名称,只能订阅一次
import { subscribeOnlyOne } from '@tb-app/pub-sub';
const callback = function (name, data) {
console.log(name, data);
};
subscribeOnlyOne('say', callback);
// 下面代码将会报错
// subscribeOnlyOne('say', callback);
订阅消息,但是回调只会被调用一次,即调用后会立即取消订阅
import { subscribeOnce } from '@tb-app/pub-sub';
const callback = function (name, data) {
console.log(name, data);
};
subscribeOnce('say', callback);
setTimeout(() => {
publish('say', 'hello !');
// 第二次 publish 不会触发 callback
publish('say', 'hello !');
}, 1000);
FAQs
The npm package @tb-app/pub-sub receives a total of 1 weekly downloads. As such, @tb-app/pub-sub popularity was classified as not popular.
We found that @tb-app/pub-sub demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.

Research
/Security News
Popular npm packages keyv and cacheable compromised.

Security News
A misconfiguration gave three Anthropic models internet access, and one, believing it was in a simulation, shipped a credential-stealing package to PyPI.