区块链技术博客
www.b2bchain.cn

ECMAScript-异步编程-前置

这篇文章主要介绍了ECMAScript-异步编程-前置的讲解,通过具体代码实例进行20090 讲解,并且分析了ECMAScript-异步编程-前置的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=20090

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

文章目录

          • 一、ECMAScript-异步编程-前置
            • 1. JS是单线程的
            • 2. 同步任务 与 异步任务
            • 3. Ajax原理
            • 4. Callback Hell 【回调深渊,回调地狱】

一、ECMAScript-异步编程-前置
1. JS是单线程的

​ 一个时间点,只能处理一个任务。

2. 同步任务 与 异步任务
  • 同步任务:JS在执行代码的时候,是从上往下,依次执行的。

  • 异步任务:当执行的代码,需要延迟一段时间,再来处理相应结果的任务。

    • 比如:延迟,网络请求
    • 细节:setTimeout() 默认时间是4ms,其次setTimeout()的时间,不一定是准确定义的延迟时间执行,一定是大于等于定义的时间执行,异步任务的执行,需要等主线程同步任务执行完空闲且达到定义的延迟时间,才会被执行
  • 同步任务与异步任务底层运行原理

    ECMAScript-异步编程-前置

3. Ajax原理
function ajax(url, callBack) {     // 1. 创建XMLHttpRequest对象     var xmlhttp     if (window.XMLHttpRequest) {         xmlhttp = new XMLHttpRequest()     } else { // 兼容早期浏览器         xmlhttp = new ActiveXObject('Microsoft.XMLHTTP')     }     // 2. 发送请求     xmlhttp.open('GET', url, true)     xmlhttp.send()      // 3. 服务端响应     xmlhttp.onreadystatechange = function() {         if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {             var obj = JSON.parse(xmlhttp.responseText)             // console.log(obj)             callBack(obj)         }     } } var url = 'https://www.baidu.com' ajax(url, function(res) {     console.log(res) }) 
4. Callback Hell 【回调深渊,回调地狱】
// 回调深渊,回调地狱: 再异步任务的回调函数中不停的调用其他的异步任务 ajax('1xxx', function(){     ajax('2xxx', function(){         ajax('3xxx', function(){             ajax('4xxx', function(){                  })         })     }) }) 

本文转自互联网,侵权联系删除ECMAScript-异步编程-前置

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » ECMAScript-异步编程-前置
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们