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

异步改变Promise状态与then调用顺序

“异步改变Promise状态与then调用顺序”
我实际操作了下,代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body></body><script>const p1 = new Promise((resolve, reject) => {setTimeout(() => {console.log('1');resolve('This is GOOD');}, 5000);});console.log('2');p1.then((value) => {console.log('3');console.log(value);});console.log('4');</script>
</html>

最终在控制台输出顺序 2 4 1 3。


单纯理解事件循环,按照微任务优先级>宏任务优先级的机制,应该输出2 4 3 1,问题在哪?
事件循环是对 执行的函数 按优先级执行,没有被执行的则谈不上这个机制。

在Promise里,Promise实例的then方法只有实例状态从pending改变才会被推入微任务队列执行,在状态改变前,只会记录成功和失败的回调函数引用而不执行。

http://www.dtcms.com/a/321522.html

相关文章:

  • 零基础深度学习规划路线:从数学公式到AI大模型的系统进阶指南
  • 【完整源码+数据集+部署教程】植物病害检测系统源码和数据集:改进yolo11-MultiSEAMHead
  • SpringBoot的profile加载
  • Cesium 模型3dtiles 开挖 挖洞 压平
  • 单层 PDF 与双层 PDF:一字之差,功能大不同
  • 如何高效使用Cursor?要节省者用?
  • 【代码随想录day 14】 力扣 104.二叉树的最大深度
  • 机器学习及其KNN算法
  • 静态路由主备切换
  • 力扣-189.轮转数组
  • MetaBit基金会加码投资图灵协议,深化去中心化金融与元宇宙生态合作
  • mysql复制连接下的所有表+一次性拷贝到自己的库
  • 本地开发penpot源码支持AI原型设计(一)
  • node.js 学习笔记2 进程/线程、fs
  • PCB焊盘脱落的补救办法与猎板制造优势解析
  • 活到老学到老之使用jenv管理多个java版本
  • 微型导轨在半导体制造中有哪些高精密应用场景?
  • 【AI工具】解放双手,操控浏览器的工具对比,来了
  • 基于深度学习的nlp
  • ctfshow_萌新web9-web13-----rce
  • Java面试初中级:线程池的主要参数有哪些?
  • GridKernalGateway
  • 谷粒商城:检索服务
  • WSL 安装 Ubuntu
  • 50系显卡ubuntu20.04安装显卡驱动,解决gazebo不调用显卡的问题
  • 接口自动化-YAML
  • 【其他分类】Showrunner AI版的Netflix 互动故事创作平台 进行动画生成与微调、角色场景创建
  • A100用transformers推理gpt-oss
  • 【无标题】无名管道
  • (第二篇)spring cloud之Eureka注册中心