JS异步编程

1.什么是异步

如我们知道的那样,JS是单线程的,如果有一些事情处理起来很耗时,但我们又需要它的处理结果处理后续的事,所以我们就等啊等,这时就阻塞了,我们别的啥都不能做,连界面也卡住,异步给我们提供了一种可能,就是我们不必傻等,可以先做别的事情,等它处理完了我们在接着做

简单说异步就是做一些在未来才有结果的事情,严格来说异步是宿主环境(比如浏览器)给我们提供的,并不是JS引擎提供的,比如你做一个Ajax请求,我们只需要告诉浏览器一个回调,浏览器会监听这个请求,在请求成功响应后把结果告诉回调函数并把回调函数推到任务队列里

JS引擎只是一直执行代码,主线程里的代码执行完了就从任务队列里面捞任务继续执行,然后更新UI, 然后又查看主线程的代码运行…周而复始的运行

2.异步编程(callback)
3.异步编程(Promise)

解决了callback的两个缺陷:
1.“回调地狱”,代码可读性差,不利于调试追踪代码
2.回调的不可信任问题

4.异步编程(生成器+Promise)

利用生成器的特性实现以同步的方式编写异步代码

5.异步编程(async/await+Promise)

生成器+Promise 的官方支持(ES7)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值