JS Promise 同步和异步代码执行的区别
如下两张截图,第一张是同步,第二张是异步。浏览器测试确实异步加载要快很多or没有卡。从代码层面不能理解为什么会有这种区别,promise(第二张图)中只是用then把各个...
如下两张截图,第一张是同步,第二张是异步。浏览器测试确实异步加载要快很多or没有卡。从代码层面不能理解为什么会有这种区别,promise(第二张图)中只是用then把各个函数串了起来,但执行应该还是一个一个来和同步没有区别啊?还是我理解错了:异步中所有函数同时加载等待fulfill或reject调用而已,所以不卡?
(同步)
(异步) 展开
(同步)
(异步) 展开
展开全部
同步的话,必须这个操作完了才会执行下一步,在等待期间浏览器会挂起不能执行任何接下来的js代码;异步则是【告诉】浏览器去做,【告诉】是一瞬间的事情,然后就继续执行下一步了,等到结果返回来了,浏览器会通知js执行相应的回调。
追问
请问异步里的“继续执行下一步”,指的是执行这些代码里的then还是其它外部的js代码部分?
如果是执行then的各语句,是否就是指整个异步过程中所有的函数几乎都是同时加载的,只是根据返回结果选择调用而已?
追答
.then不是这样用的,里面是放函数参数,成功、失败、通知;
执行then,只是把里面参数,也就是函数预先记录下来,就像写到日程表上面一样,等到deferred对象有回馈的时候,执行相应的函数。
http://api.jquery.com/deferred.then/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询