Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

异步编程 #48

Open
jinzhepro opened this issue Apr 25, 2023 · 0 comments
Open

异步编程 #48

jinzhepro opened this issue Apr 25, 2023 · 0 comments

Comments

@jinzhepro
Copy link
Owner

回调函数

最原始的异步编程方法(回调地狱)

Promise

在一定程度上解决了回调地狱的问题,但是then多了之后也不太友好。

三种状态

pending(进行中),resolved(已解决),rejected(失败),状态一旦确定不可改变,使用then进行异步编程,catch进行错误捕获。

  • 回调函数延迟绑定:回调函数是通过then传入的而不是直接声明的。
  • 返回值穿透:可以在then中返回一个Promise进行外部调用。
  • 错误冒泡:出现错误会触发catch,不需要频繁处理错误。

静态方法

  • all,多个Promise请求并发,并顺序返回结果,如果遇到错误则直接触发rejectedrace。
  • allSettled,多个Promise请求并发,并顺序返回结果状态。
  • any,多个Promise请求并发,只要有一个resolved,结果就为resolved,否则rejected
  • race,多个Promise请求并发,有一个实例率先改变状态,就改变。

Generator

使用yield来暂定执行函数。

async/await

Generator语法糖,结合了co+Generator,又有底层语法支持。

  • 内置执行器
  • await返回Promise
  • 可读性好
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant