Promise与setTimeout之间的执行顺序
/** * 要点一: * 当Promise进入落地状态时,与该状态相关的处理程序仅仅会被排期,而非立即执行。 * 而且,跟在添加这个处理程序的代码之后的同步代码一定会在处理程序之前执行。 * ——摘自《JavaScript高级程序设计(第四版)》第11章“期约与异步函数” “非重入期方法”小节 * 要点二: * JS是单线程的,异步任务会被暂存于任务队列,当任务队列中的任务觉得时候到了才到线程上排队执行。 */ //以下输出顺序: 1 4 7 5 2 3 6 console.log(1) setTimeout(() => { console.log(2); Promise.resolve().then(() => { console.log(3) }) }) new Promise((resolve, reject) => { console.log(4) resolve(5) }).then((data) => { console.log(data) }) setTimeout(() => { console.log(6) }) console.log(7)
分类:
【JavaScript前菜】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律