一句话解释:
async/await 的本质就是:用同步的写法,写异步的操作
我的理解
async有两个作用:
首先,让异步操作变成同步操作,这个在网络请求端口号对接作用很大。
其次,他能简化promise,就.then可以省略直接输出promise的结果。
以下是代码练习
❌我所踩过的坑
定时器时间很短,输出会变成 1 → 2 → 3 吗?
答案是不会的。await 只卡住当前函数,不卡住函数外面的代码。
await 有一个“让路规则”。await 哪怕等 0 毫秒,也会先让外面的代码跑完。
所有,我理解了JS 是单线程,所有任务排着队执行,不存在"同时发生"。
一个练习的例子
针对这个代码我的疑问并有理解方案:
data是随便给的参数名,不是关键字。
setTimeout(函数, 毫秒数),意思是"等 X 毫秒后执行这个函数"而且本身是异步的。
在函数内部,value 就是 'hello'。它和 C# 里的参数概念是一样的——都是"函数调用时传进去的那个东西"。
最后是关于昨天promise收尾
结尾处用then来表示,其实没有then catch更轻便。
在写复杂链条时,.catch 更安全、更干净。
以下是两种写法的呈现
最后,虽然前端走全栈很难,但是我相信,
夜色难免薄凉,前路必有曙光。