js 执行顺序

复制代码
  //  javascript是一门单线程语言
    async function async1() { // async关键字 申明这个function是异步的
        console.log('async1 start') //  2
        await async2(); //看到了await关键字 它前面的所有代码块执行完以后 才会执行下面的代码
        console.log('async1 end') // async 函数返回一个 Promise对象 异步挂起 放到 "任务队列"  5
    }
    async function async2() {
        console.log('async2')// 3
    }
    console.log('script start') // 第一个同步任务 首先执行完毕 1
    setTimeout(function () { 
        console.log('setTimeout')// setTimeout()在主线程最早可得的空闲时间执行,也就是说,同步任务和"任务队列"处理完以后才轮到它。它在"任务队列"的尾部添加一个事件 放到最后 7
    }, 0)
    async1()
    console.log('12222222221')
    new Promise(function (resolve) { //传参是个 同步任务 4
        console.log('promise1')
        resolve()
    }).then(function () { 
        console.log('promise2') // then方法会返回一个新的promise 异步挂起 放到 "任务队列" 6
    })
     // 下面没有代码了 js开始按顺序执行刚才放到"任务队列"里的代码块 
复制代码

参考地址:https://www.cnblogs.com/zwnsyw/p/12772668.html

posted @   lzhflzjx  阅读(101)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示