首页 > 编程语言 >[XState] Create Actor in Vanilla Javascript

[XState] Create Actor in Vanilla Javascript

时间:2022-11-30 01:44:25浏览次数:48  
标签:count return Create Javascript listener state XState event currentState

 

function countBehavior(state, event) {
  if (event.type === "INC") {
    return {
      ...state,
      count: state.count + 1
    }
  }
}

function createActor(behavior, initialState) {
  let currentState = initialState
  const listeners = new Set()
  return {
    send: (event) => {
      currentState = behavior(currentState, event)
      listeners.forEach(listener => {
        listener(currentState)
      })
    },
    subscribe: (listener) => {
      listeners.add(listener)
      listener(currentState)
    },
    getSnapshot: () => {
      return currentState
    }
  }
}

const actor = createActor(countBehavior, {count: 12})
actor.subscribe(console.log)

 

标签:count,return,Create,Javascript,listener,state,XState,event,currentState
From: https://www.cnblogs.com/Answer1215/p/16937247.html

相关文章

  • 23条JavaScript初学者应知的最佳实践方法
    1、优先使用===,而不是==JavaScript使用两种相等性操作符:===|!==和==|!=。通常认为做比较的最佳实践是使用前一组操作符。“若两个操作数的类型和值相同,那么===比较的结果为......
  • 10种经典排序算法的JavaScript实现方法
    排序算法是《数据结构与算法》中最基本的算法之一。常见的一些排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。其中,冒泡排序......
  • 图解实例讲解JavaScript算法,让你彻底搞懂
    你好程序员,我们大多数人都害怕算法,并且从未开始学习它。但我们不应该害怕它。算法只是解决问题的步骤。今天让我们以简单和说明性的方式介绍主要算法。不要试图记住它们......
  • 一行能装逼的JavaScript代码
    一行神奇的js代码,当时我就震惊了,这不就是传说中的ZB神奇么……哈哈。写本篇文章的缘由是之前看到了一段js代码,如下:​​(!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+......
  • 教你用JavaScript实现随机点名
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript相关知识,做一个随机点名的案例。你可以通过点击开始按钮控制上方名字的闪动,点击停止......
  • RuntimeError: Unable to create a new session key. It is likely that the cache is
    使用Centos7.6安装的Stein版本,按照官方文档一步步安装Dashboard,输入用户名和密码后出错,如下所示 查看apache日志/var/log/httpd/error_log,发现以下错误[root@controll......
  • javascript 高级编程系列 - 字符串
    1.字符串中的方法matchstr.match(reg)参数:一个正则表达式对象,如果reg不是正则表达式对象,则会利用newRegExp(reg)隐式转换。返回值:1.正则表达式中如果有g标志......
  • 1、引入Javascript的几种方式
    <scripttype="text/javascript">window.alert("hellojs");//alert函数会阻塞整个页面加载的作用,当我们把script放到最前面//当alert按......
  • JavaScript笔记
    JavaScript合集学完HTML5+CSS3的小伙伴,学习JS时,要多敲多练多想多拓展刚开始入门JS的时候,我们不需要纠结那么多,有些需要先记住,后面会慢慢明白为什么是这样的JS基础部分......
  • 使用Javascript/jQuery将javascript对象转换为json格式数据
    Javascript自带的eval()函数能够将json数据转换成Javascript对象。但是,却没有提供将Javascript对象序列化为json格式的函数。varjson='{"name":"John"}';varobj=eva......