首页 > Web开发 > 详细

使用pubsub-js来做消息的订阅和发布

时间:2021-05-11 22:04:09      阅读:29      评论:0      收藏:0      [点我收藏+]

安装pubsub-js

  • 使用npm安装:npm install pubsub-js
  • 使用yarn安装:yarn add pubsub-js

引入

import PubSub from ‘pubsub-js‘

// or when using CommonJS
const PubSub = require(‘pubsub-js‘);

基本案例

// create a function to subscribe to topics
var mySubscriber = function (msg, data) {
    console.log( msg, data );
};

// add the function to the list of subscribers for a particular topic
// we‘re keeping the returned token, in order to be able to unsubscribe
// from the topic later on
var token = PubSub.subscribe(‘MY TOPIC‘, mySubscriber);

// publish a topic asynchronously
PubSub.publish(‘MY TOPIC‘, ‘hello world!‘);

// publish a topic synchronously, which is faster in some environments,
// but will get confusing when one topic triggers new topics in the
// same execution chain
// USE WITH CAUTION, HERE BE DRAGONS!!!
PubSub.publishSync(‘MY TOPIC‘, ‘hello world!‘);

取消订阅

// create a function to receive the topic
var mySubscriber = function (msg, data) {
    console.log(msg, data);
};

// add the function to the list of subscribers to a particular topic
// we‘re keeping the returned token, in order to be able to unsubscribe
// from the topic later on
var token = PubSub.subscribe(‘MY TOPIC‘, mySubscriber);

// unsubscribe this subscriber from this topic
PubSub.unsubscribe(token);

取消某个函数的所有订阅

// create a function to receive the topic
var mySubscriber = function(msg, data) {
    console.log(msg, data);
};

// unsubscribe mySubscriber from ALL topics
PubSub.unsubscribe(mySubscriber);

取消某个topic的全部订阅

PubSub.subscribe(‘a‘, myFunc1);
PubSub.subscribe(‘a.b‘, myFunc2);
PubSub.subscribe(‘a.b.c‘, myFunc3);

PubSub.unsubscribe(‘a.b‘);
// no further notifications for ‘a.b‘ and ‘a.b.c‘ topics
// notifications for ‘a‘ will still get published

取消所有订阅

PubSub.clearAllSubscriptions();
// all subscriptions are removed

使用pubsub-js来做消息的订阅和发布

原文:https://www.cnblogs.com/pangqianjin/p/14756726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!