@tb-app/pub-sub
Advanced tools
+29
-4
@@ -0,1 +1,5 @@ | ||
| 'use strict'; | ||
| Object.defineProperty(exports, '__esModule', { value: true }); | ||
| function warning(message) { | ||
@@ -52,3 +56,3 @@ console.error(message); | ||
| /** | ||
| * 发布。根据 name 触发响应的注册回调 | ||
| * 发布。根据 name/token 触发响应的注册回调 | ||
| * @param name | ||
@@ -59,4 +63,17 @@ * @param data | ||
| function publish(name, data) { | ||
| assertName(name); | ||
| if (typeof name !== 'string') { | ||
| warning("Expected the name to be a string ,Instead, received:'" + typeof name + "'"); | ||
| } | ||
| var result = false; | ||
| if (isToken(name)) { | ||
| var token = name; | ||
| var names = Object.keys(callbacks); | ||
| for (var i = 0; i < names.length; i += 1) { | ||
| var map = callbacks[names[i]]; | ||
| if (hasOwnProperty(map, token)) { | ||
| map[token](names[i], data); | ||
| return true; | ||
| } | ||
| } | ||
| } | ||
| if (hasOwnProperty(callbacks, name)) { | ||
@@ -147,3 +164,3 @@ Object.values(callbacks[name]).forEach(function (callback) { | ||
| /** | ||
| * 订阅消息,但是回调只会触发一次 | ||
| * 订阅消息,但是回调只会触发一次。返回结果为token | ||
| * @param name | ||
@@ -157,4 +174,12 @@ * @param callback | ||
| }); | ||
| return token; | ||
| } | ||
| export { clearAllSubscriptions, clearSubscriptions, getSubscriptions, publish, subscribe, subscribeOnce, subscribeOnlyOne, unsubscribe }; | ||
| exports.clearAllSubscriptions = clearAllSubscriptions; | ||
| exports.clearSubscriptions = clearSubscriptions; | ||
| exports.getSubscriptions = getSubscriptions; | ||
| exports.publish = publish; | ||
| exports.subscribe = subscribe; | ||
| exports.subscribeOnce = subscribeOnce; | ||
| exports.subscribeOnlyOne = subscribeOnlyOne; | ||
| exports.unsubscribe = unsubscribe; |
+3
-2
| { | ||
| "name": "@tb-app/pub-sub", | ||
| "version": "0.1.0", | ||
| "version": "0.2.0", | ||
| "description": "提供发布订阅模式的库", | ||
@@ -14,2 +14,3 @@ "keywords": [ | ||
| "main": "lib/index.js", | ||
| "types": "types/index.d.ts", | ||
| "directories": { | ||
@@ -55,3 +56,3 @@ "lib": "lib", | ||
| }, | ||
| "gitHead": "0de557118beb661f4fa8983d0584bfdf671dcb9e" | ||
| "gitHead": "8df64e4ad6f74171775857f867461107fd6ea4b9" | ||
| } |
+3
-3
@@ -10,3 +10,3 @@ declare type Callback = (name: string, data: any) => any; | ||
| /** | ||
| * 发布。根据 name 触发响应的注册回调 | ||
| * 发布。根据 name/token 触发响应的注册回调 | ||
| * @param name | ||
@@ -43,7 +43,7 @@ * @param data | ||
| /** | ||
| * 订阅消息,但是回调只会触发一次 | ||
| * 订阅消息,但是回调只会触发一次。返回结果为token | ||
| * @param name | ||
| * @param callback | ||
| */ | ||
| declare function subscribeOnce(name: string, callback: Callback): void; | ||
| declare function subscribeOnce(name: string, callback: Callback): string; | ||
| export { subscribe, publish, clearSubscriptions, unsubscribe, clearAllSubscriptions, getSubscriptions, subscribeOnlyOne, subscribeOnce }; |
12307
7.35%226
11.33%