关于js异步编程的理解与练习

js小白刚学异步, 有错误的地方及理解希望大家及时指出,谢谢大家

重点检查代码的执行顺序


.then和.catch后面是回调函数, 回调函数是需要加到event loop队列等待执行的(按加入顺序执行, FIFO先进先出)


Event Loop是一个回调函数队列。当异步函数执行时,回调函数会被压入这个队列。JavaScript引擎直到异步函数执行完成后,才会开始处理事件循环。这意味着JavaScript代码不是多线程的,即使表现的行为相似。事件循环是一个先进先出(FIFO)队列,这说明回调是按照它们被加入队列的顺序执行的。


<script>
        let p = (time) => {
            return new Promise((res, err) => {
                if (time > 3000) {
                    console.log(time)
                    res(`时间为${time}`)
                    console.log('已经执行完')
                } else {
                    err('时间小于3秒')
                }
            })
        }
        // (1)先输出 0
        console.log(0)

        // (2)再输出 4000 已经执行完
        // .then .catch是回调函数
        // 回调函数加入了 Event Loop 队列等待执行

        p(4000).then(res => {
            console.log(res)
        }).catch(err => {
            console.log(err)
        })

        // (3)再输出1
        // (4)再输出2
        console.log(1)
        console.log(2)

        // (5)再输出5000 已经执行完
        // .then .catch是回调函数
        // 回调函数加入了 Event Loop队列等待执行

        p(5000).then(res => {
            console.log(res)
        }).catch(err => {
            console.log(err)
        })

        // .then .catch是回调函数
        // 回调函数加入了 Event Loop队列等待执行

        p(1000).then(res => {
            console.log(res)
        }).catch(err => {
            console.log(err)
        })
        /*
            最后输出结果:
            0
            4000
            已经执行完
            1
            2
            5000
            已经执行完
            时间为4000
            时间为5000
            时间小于3秒
        */
    </script>

JavaScript异步编程可参考:
Javascript异步编程的4种方法–阮一峰的网络日志
js-异步机制与同步机制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《JavaScript DOM编程艺术》第二版是一本非常经典的前端开发书籍,由作者Jeremy Keith和Jeffrey Sambells合作编写而成。该书主要介绍了使用JavaScript和DOM技术进行网页开发的知识,涵盖了DOM操作、事件监听、表单验证、AJAX等内容。 本书首先讲解了DOM的基础知识,包括节点、元素、属性、文本等概念,并介绍了通过JavaScript对DOM进行操作的方法。然后,通过实例讲解了如何根据用户的交互行为来实现动态效果,如当用户点击某个按钮时改变网页的背景色等。 此外,本书还介绍了如何利用AJAX技术进行异步数据交互,比如通过JavaScript动态加载内容等。同时,本书也提供了一些工具和技巧来提高网页的性能和用户体验,比如浏览器兼容性、缓存、图片优化等。 总之,《JavaScript DOM编程艺术》第二版是一本前端开发必读的书籍,可以帮助读者全面掌握JavaScript和DOM技术,在开发网页时提高效率和质量。而PDF版本的书籍更方便读者随时随地学习,建议前端开发人员可以认真阅读和应用到实践中。 ### 回答2: 《JavaScript DOM编程艺术第二版》是一本深入浅出的JavaScript和DOM编程入门书籍,适合初学者学习。 该书共有18章,从JavaScript基础语法和DOM结构开始讲起,一步步引导读者学习Javascript与DOM编程。其中介绍了文档对象模型(DOM)的概念、DOM节点、节点属性与操作等重要知识点,并通过实例和练习帮助读者更好地理解如何使用DOM进行网页设计和开发。此外,书中还介绍了如何使用JavaScript制作动态网页、表单验证、浏览器兼容性问题等实用的开发技巧,为读者提供了丰富的编程经验。 书中使用简洁易懂的语言,结合大量实例和练习,让读者可以快速掌握JavaScript与DOM的核心概念和编程技巧。作者还在书中提供了很多实战案例,让读者可以将所学的知识应用到实际开发中,并且让读者更好地理解如何进行项目开发。 总之,《JavaScript DOM编程艺术第二版》是一本不可多得的优秀JavaScript与DOM编程入门教材,读者只需要具备基本的JavaScript和HTML/CSS知识,即可轻松掌握书中内容,快速提高前端开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值