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

[js] 第151天 实现异步编程有哪些方式?推荐用哪种? #1203

Open
haizhilin2013 opened this issue Sep 13, 2019 · 3 comments
Open
Labels
js JavaScript

Comments

@haizhilin2013
Copy link
Collaborator

第151天 实现异步编程有哪些方式?推荐用哪种?

@haizhilin2013 haizhilin2013 added the js JavaScript label Sep 13, 2019
@Konata9
Copy link

Konata9 commented Sep 14, 2019

  • 回调函数: 最传统的异步处理,下一步的操作交给前一步来控制。当要处理的内容较多时,会出现回调地狱。代码会比较难维护和处理。
  • Generator: 通过迭代器来实现异步操作。
  • Promise: ES6 新增特性。通过 resolvereject 来实现异步操作。
  • async/await: 在 JavaScript 中为 Generator 的语法糖,在书写上和同步一样,比较直观易懂。但是需要注意的是 await 会阻塞后面的代码。因此当没有关联关系的程序先后执行时,要注意不要让 await 堵塞。

@xiaoqiangz
Copy link

回调函数: 最传统的异步处理,如果出现多层调用会造成回调地域
promise: 一经调用 状态不可更改
Generator:配合yeild关键字来实现异步操作
async/await: 终极异步处理,将异步转换成了同步来处理。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js JavaScript
Projects
None yet
Development

No branches or pull requests

4 participants
@haizhilin2013 @Konata9 @xiaoqiangz and others