await和then的区别详解

Async/Await与Promise最大区别在于:await b()会暂停所在的async函数的执行;而Promise.then(b)将b函数加入回调链中之后,会继续执行当前函数。对于堆栈来说,这个不同点非常关键。
下面是promise封装的请求函数
await和then的区别详解_第1张图片
下面是用await和then的方式进行数据请求。
await和then的区别详解_第2张图片

await的方式:

执行第40行代码之后会暂停40行之后的代码执行,直到请求的数据返回才开始执行后面的代码。所以后面41行的数据是请求回来的数据。

then的方式

发送请求之后会将then中的内容放入堆栈,then之后的代码正常顺序执行,所以第51行执行的时候还没有请求到数据,就会输出undefine。当请求的数据回来时,开始执行then中的代码段(46-48行代码)。

个人理解,如有错误欢迎批评指正!

你可能感兴趣的:(javascript,javascript,es6)