异步执行,回调函数,promise对于前端开发者来说是必须掌握且至关重要的问题,为了学好promise所以先深入理解一下异步,以及回调函数的概念。
1.何谓同步异步?
同步:按顺序执行,后者一定要等前者完成之后才可以开始,如下代码
function f1(){
console.log('1');
}
function f2(){
console.log('2');
}
function f3(){
console.log('3');
}
f1()
f2()
f3()
结果一定是按序输出1,2,3;那么此时如果第一个函数f1里面的代码需要很长很长时间去执行呢?答:死等,f2(),f3()就只能傻等着,直到f1执行完毕才能开始,有人会想这有什么问题吗?就等着呗,有什么的!
其实举一个例子,就像用全自动洗衣机洗衣服需要45分钟洗完,我就在旁边等着什么也不干,傻站着,盯着它,是不是有点上火了!觉得浪费时间,浪费人生!你就会想,我干嘛等着啊,我有这功夫回宿舍打局游戏不好吗?追个剧不好吗?洗完了告诉我一声,我再取出来晾上不就好了。
哎,对喽,这就是异步!!(在洗衣机洗衣服的同时,去打游戏追剧就是异步)
异步:不按顺序执行,在执行那些需要很费时间事情的时候不阻塞其他事情,
通俗讲就是我这估计得忙一会呢,你该干啥干啥去吧,完事叫你!如下代码
function f1(){
console.log('1');
}
function f2(){
setTimeout(function(){
console.log('2');
}