1.同步和异步
- JS是单线程语言,只能同时处理一件事
- 浏览器和nodejs支持js启动进程,如Web Worker
- JS和DOM渲染共用一个线程,因为JS可以修改DOM
- 遇到等待 (网络请求、 定时任务) 不能阻塞
异步的目的是为了解决单线程存在等待的问题,是基于JS是单线程的本质,以callback
函数形式来调用,不会阻塞代码执行。
2.异步的应用场景
- 网络请求(Ajax)
- 定时任务(setTimeout)
3.CallBack Hell(回调炼狱)
使用Promise解决
- JS是单线程语言,只能同时处理一件事
- 浏览器和nodejs支持js启动进程,如Web Worker
- JS和DOM渲染共用一个线程,因为JS可以修改DOM
- 遇到等待 (网络请求、 定时任务) 不能阻塞
异步的目的是为了解决单线程存在等待的问题,是基于JS是单线程的本质,以callback
函数形式来调用,不会阻塞代码执行。
使用Promise解决