/**
* Created by Mrzou on 2018/3/11.
*/
//实现简单的订阅与发布模式的代码块
export function pattern() {
let currentListeners = []
function subscribe(type, listener) {
if ((typeof listener !== ‘function‘) || (typeof listener !== ‘string‘)) {
throw new Error(‘参数类型错误‘)
} else {
currentListeners.push({type, listener})
}
}
function dispatch(type, value) {
currentListeners.forEach(v=> {
(v.type === type) && v.listener(value)
})
}
return {subscribe, dispatch}
}
//实现一个简单的redux
export function createStore(reducer) {
let currentState = {}
let currentListeners = []
function getState() {
return currentState
}
function subscribe(listener) {
currentListeners.push(listener)
}
function dispatch(action) {
currentState = reducer(currentState, action)
currentListeners.forEach(v=>v())
return action
}
dispatch({type: ‘@@MONI_REDUX/INITIALSTATE‘})
return {getState, subscribe, dispatch}
}
实现一个简单的订阅与发布模式的代码块,和redux
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现一个简单的订阅与发布模式的代码块,和redux相关的知识,希望对你有一定的参考价值。
以上是关于实现一个简单的订阅与发布模式的代码块,和redux的主要内容,如果未能解决你的问题,请参考以下文章
Redis Pub/Sub 发布订阅模式的深度解析与实现消息队列