【设计模式】当发布订阅遇上Promise

本文探讨了发布-订阅模式与Promise在JavaScript中的结合应用。通过简单的实现示例,解释了如何使用Promise来管理订阅者和发布者的交互,详细阐述了Promise的构造函数、resolve和reject函数以及then方法的工作原理。同时,梳理了Promise执行的调用栈顺序,并提供了相关学习资源。
摘要由CSDN通过智能技术生成

在这里插入图片描述

Write Less & Do More

发布-订阅模式是一种对象间一对多的依赖关系,当一个对象的状态发送改变时,所有依赖于它的对象都将得到状态改变的通知。

简单点就是 收集依赖 => 触发通知 => 取出依赖执行

PromiseJS 异步编程中的重要概念,异步抽象处理对象,是目前比较流行 Javascript 异步编程解决方案之一,示例如下

new Promise((resolve, reject) => {
   
  resolve('fulfilled')
}).then(console.log) // => 'fulfilled'

拆分如下:订阅者(then)把订阅的事件 (console.log) 注册到调度中心(Promise),当发布者(resolve, reject)发布该事件到调度中心,该事件触发时由调度中心统一调度订阅者注册到调度中心的处理代码, 输出 ‘fulfilled’。

简单实现

Promise构造函数用来声明示例对象,需要传入一个执行器函数。其中包括 resolve 函数和 reject 函数,以及几个重要的属性:状态属性、结果属性和回调函数队列。

function _Promise(executor) {
   
  const context = this

  // 初始化
  this.state = 'pending'
  this.result = null
  this.callBacks = []

  function resolve(value) {
    }
  function reject(reason) {
    }

  // 同步调用执行函数
  try {
   
    executor(resolve, reject)
  } catch (error) {
   
    reject(error)
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值