JS Promise 同步和异步代码执行的区别

如下两张截图,第一张是同步,第二张是异步。浏览器测试确实异步加载要快很多or没有卡。从代码层面不能理解为什么会有这种区别,promise(第二张图)中只是用then把各个... 如下两张截图,第一张是同步,第二张是异步。浏览器测试确实异步加载要快很多or没有卡。从代码层面不能理解为什么会有这种区别,promise(第二张图)中只是用then把各个函数串了起来,但执行应该还是一个一个来和同步没有区别啊?还是我理解错了:异步中所有函数同时加载等待fulfill或reject调用而已,所以不卡?
(同步)

(异步)
展开
 我来答
百度网友2530911
2014-10-14 · 超过18用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:27.3万
展开全部
同步的话,必须这个操作完了才会执行下一步,在等待期间浏览器会挂起不能执行任何接下来的js代码;异步则是【告诉】浏览器去做,【告诉】是一瞬间的事情,然后就继续执行下一步了,等到结果返回来了,浏览器会通知js执行相应的回调。
追问
请问异步里的“继续执行下一步”,指的是执行这些代码里的then还是其它外部的js代码部分?
如果是执行then的各语句,是否就是指整个异步过程中所有的函数几乎都是同时加载的,只是根据返回结果选择调用而已?
追答
.then不是这样用的,里面是放函数参数,成功、失败、通知;

执行then,只是把里面参数,也就是函数预先记录下来,就像写到日程表上面一样,等到deferred对象有回馈的时候,执行相应的函数。

http://api.jquery.com/deferred.then/
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式