【JS春招面试题】promise和async await的不同是什么?

作者: 程序员小伙伴分类: 计算机技术 发布时间: 2023-05-11 10:57:55 浏览:4086 次

【JS春招面试题】promise和async await的不同是什么?

星光易冷:
最后一点,遇到await就立刻返回结果,然后执行后面的操作,then会出现请求还没返回就执行后面的操作。是什么意思啊 await后面跟一个promise对象,执行await右边的代码(同步),然后等promise状态改变,会将值赋给左边,实现异步。 promise是先执行promise传入的回调函数(整个回调函数都是同步包括写在resolve下面的),等resolve或者reject改变状态后执行then里的代码 我不太清楚怎么和上述我自己理解的环节对应,请问能解答一下吗

【回复】[笑哭]你这写的啥,不要公式化去理解这些东西,其实await就是把异步操作变成了同步而已,这样就避免了使用promise的.then方法造成的代码结构混乱,同时也避免了promise必须使用catch方法或者说then方法的第二个参数函数来处理异常造成的不便(因为await的异常可以直接使用try catch来捕获,就像同步代码一样)[笑哭]然后配合async,就不至于让await的耗时“同步”操作造成阻塞,可以说async await本质上来说是promise更加优雅和便捷的一种形式
【回复】回复 @Cosinse_余弦 :[呆][呆]
【回复】回复 @zomb嘿嘿 : 你这样理解就不对了,await 只是 then 的语法糖,只是形式上类似同步,本质上还是用的 then 处理异步的顺序
Eran旧夏天:
promise本身是同步的,而then和catch等方法是阻塞式的,promise的状态改变后才会被执行,promise里面的代码会被立即执行,但是pormise里面的代码的性质,可以分为同步,微任务,宏任务。如果不是同步代码,也就是说,promise则成为异步。也就是说异步代码和promise配合有很好的异步效果,避免callback地域

阿姨xi铁路:
这里一说的是promise实现async await 大火就别看了。

编程语言 编程 小鹿线 面试 前端 JavaScript 前端开发 编程开发 Web前端 前端面试

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!