当前位置: 首页 > news >正文

promise应用

Promise介绍

  • 什么是Promise

    • 是一个类

    • 当通过new创建Promise实例,需要传入一个回调函数,我们称之为executor

      • 这个回调函数会被立即执行,并传入两个回调函数的参数(resolve, reject)

      • 当调用resolve回调函数时, 会执行Promise对象的then方法传入的回调

      • 当调用reject回调函数时, 会执行Promise对象的catch方法传入的回调

    • Promise是一个状态机,分为3种状态

      • pending: 待定状态,执行了executor后,处于该状态

      • fulfilled: 兑现状态,调用resolve()后, Promise的状态更改为fullfilled, 且无法再次更改

      • rejected: 拒绝状态,调用reject()后,Promise的状态更改为rejected,且无法再次更改

  • resolve 的参数

    • 如果传入的是普通的值或者对象,则会传递到then的参数中

    • 如果传入的是一个Promise, 那么当前的Promise状态会由传入的Promise决定

const newPromise = new Promise((resolve, reject) => { resolve('success') }) new Promise((resolve, reject) => { // 当前Promise的状态由传入的Promise决定 resolve(newPromise) }).then(res => { console.log('res', res) }).catch(err => { console.log('err', err) })
  • 如果传入的是一个对象,并且该对象实现了then方法(thenable), 也会执行该then方法,并且由该then方法决定后续的状态

new Promise((resolve, reject) => { // 如果 resolve 传入的是对象,且该对象实现了then方法 // 则该 Promise 的状态由then方法决定 resolve({ then(resolve, reject) { reject('error') } }) }).then(res => { console.log('res', res) }).catch(err => { conso
http://www.jsqmd.com/news/105864/

相关文章:

  • 零基础快速搭建Jellyfin媒体服务器:完整安装配置指南
  • 3步实现RQ日志集中化:告别分布式任务监控盲区
  • 在晶圆清洗后,我们如何测量晶圆表面的金属离子是否洗干净?
  • VSCode竟然能实时渲染量子门电路?99%的人都不知道的黑科技插件
  • VSCode调试量子算法总是崩溃?99%的人都忽略的3个关键设置
  • ACadSharp终极指南:5个简单步骤掌握DXF/DWG文件处理
  • PULC超轻量图像分类方案:移动端AI部署的终极指南
  • 从崩溃到稳定:重构Q#-Python异常传递链的4个关键步骤,现在不学就晚了
  • 端口映射配置总是失败?,一文搞定VSCode远程调试常见陷阱
  • 【专家亲授】Azure量子计算资源统计难题破解:CLI脚本深度解析
  • 【量子开发者必备工具书】:VSCode中不可不知的15个高效快捷键组合
  • Azure CLI量子任务资源分析指南(内部数据披露,限时公开)
  • 告别复杂命令:5步打造你的专属版本控制系统
  • HoRNDIS完全指南:在macOS上实现Android USB网络共享的专业方案
  • Quill字号控制完全攻略:打造个性化文本编辑体验
  • 【量子计算可视化专家经验】:7种高效配色方案提升电路可读性
  • 揭秘Azure量子作业日志:如何用CLI快速诊断运行失败问题
  • Python应用封装解决方案:图形化打包工具深度解析
  • 从零开始构建量子计算工具:VSCode Azure QDK扩展开发,专家级教程
  • 揭秘VSCode Azure QDK扩展开发:5个你必须知道的核心技巧
  • 黑苹果EFI自动化生成终极指南:三分钟搞定完美配置
  • 15、Linux使用与管理全攻略
  • 【视频异常检测】Knowledge-Guided Textual Reasoning for Explainable Video Anomaly Detection via LLMs
  • AffectNet数据集完整使用指南:从入门到精通的表情识别解决方案
  • 运维人必看:学 Go 到底是刚需还是跟风?
  • DiT革命:Transformer如何重塑图像生成的未来格局
  • 量子算法开发全攻略(VSCode配置与示例代码大公开)
  • Blender Launcher终极指南:简单管理多版本Blender的完整解决方案
  • Qwen3语音识别技术如何重塑人机交互体验?
  • 【Cirq代码补全黑科技】:揭秘量子编程高效开发的5大自定义规则