美文网首页
什么是异步

什么是异步

作者: 罗斯福 | 来源:发表于2020-01-04 23:50 被阅读0次

    总体介绍:

    同步:去黄牛店铺买票,等黄牛买到票以后,拿票走人(需要任务执行完了,再执行下一任务)
    异步:去黄牛店铺买票,回家后等黄牛打电话(callback)了再去拿票(不等任务执行完,直接进行下一任务)

    举例

    1,异步代码:代码编写顺序和执行顺序不一样

    console.log(1)
    setTimeout(function(){
      console.log(2)
    },0)
    console.log(3)
    

    2,平常的异步实例
    特别注意:

    var teskAsync=function(){
    var result=setTimeout(function(){
    console.log('异步任务结果')
    },3000)
    return result
    }
    var result=teskAsync()
    otherTask()
    

    聪明的你会发现以上的代码并不是异步执行的结果,二十一个time id。那怎么拿到结果呢,用回调

    function taskAsync = function(callback){
      var result = setTimeout(function(){
        callback('异步任务的结果')
      }, 3000)
      return result
    }
    
    taskAsync(function callback(result){
      console.log(result) // 三秒钟后,这个 callback 函数会被执行
    })
    otherTask()   
    

    3,典型的异步实例

    function taskB(){
      var result = $.ajax({
        url:"/data.json",
        async: true // 异步
      })
      return result // 一定要注意,现在的 result 不是上面的 response,只是个promise
    }
    taskA()
    taskB()
    taskC()
    

    总结:1,JS引擎不会同时做两件事,例如setTimeout,A事件和B事件之间还是存在一定的事件差,异步并不强制要求两个任务同时执行
    2,Ajax,可以与JS代码同时执行,因为这个不是由JS引擎负责,是由浏览器网络模块负责

    相关文章

      网友评论

          本文标题:什么是异步

          本文链接:https://www.haomeiwen.com/subject/bltqactx.html