前端异步的解释-概念性

Promise 三种状态

  • pending resolved rejected

  • pending —> resolved 或 pending —> rejected

  • 变化不可逆

Promise 状态表现

  • pending 状态,不会触发 then 和 catch

  • resolved 状态,会触发后续的 then 回调函数

  • rejected 状态,会触发后续的 catch 回调函数

thencatch 改变状态

  • then 正常返回 resolved , 里面有报错则返回 rejected

  • catch 正常返回 resolved,里面有报错则返回 rejected

asyncawait

  • 异步回调 callback hell

  • Promise then catch 链式调用,但也是基于回调函数

  • async/await是同步语法,彻底消灭回调函数

async/awaitPromise 的关系

  • async/await是消灭异步回调的终极武器

  • 但和 Promise并不互斥

  • 反而,俩者相辅相成

  • 执行async函数,返回的是 Promise

  • await 相当于 Promise 的 then

  • try...catch 可捕获异常,代替了 Promisecatch

异步本质

  • async / await 是消灭异步回调的终极武器

  • JS还是单线程,还得是有异步,还得是基于event loop

  • async/ await 只是一个语法糖

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

:+1: 总结很赞了,配上案例更舒服 :smirk:

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!