同步、异步及回调

2018-03-22  本文已影响0人  darkTi

JavaScript中,JavaScript是单线程,单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。于是就有一个概念——任务队列。但是如果一直这样等着排队执行任务,非得等一个任务完成再执行下一个任务,这样就会造成资源浪费,所以就有了同步任务和异步任务。

A:让黄牛去买票,然后我搁边上站着等(这是同步任务
B:让黄牛去买票(告诉黄牛,你买到票call我),然后我去做其他事情(这是异步任务,括号里表示的是回调

function fn1(){
    setTimeout(function(){
        console.log("异步做事")
},1000)
}
function fn2(){
    console.log("同步做事")
}
fn1()
console.log(1)//先打印出1,再打印出“异步做事”,因为fn1是异步函数,不等函数结果出来,直接运行下面的代码
fn2()
console.log(1)//先打印出“同步做事”,再打印出1,因为fn2是同步函数,会等函数运行完,结果出来,再运行下面的代码

至此,同步、异步、回调都有了大致的了解了

上一篇下一篇

猜你喜欢

热点阅读