1、js 异步操作最常见的剑钕饿粪场景就是 ajax 方式请求后台的时候,我们就以 ajax 请求为例。ajax 最”原始“的写法,就是异步回调函数的写法,多个有先后关系的 ajax 请求很容易产生”死亡回调“,讨论的题目中明确说明了要用”同步“的方式,这里就不讨论这个最”原始“的方法了
2、ES6 标准中给 js 引入了 Promise 对象,可以让我们以类似同步的方式写本来是异步的代码,这样的写法笔者曾用过很长一段时间,体会是还可以,比之前的回调写法好一些,如果要深入了解 Promise,可以自行百度。具体用法如下图:
3、再就是 ES7 标准中引入的 async / await 了,你可以简单的把它们理解为 Promise 的封装,它们可以让异步代洁船诼抨码的写法更接近同步的写法,不过也有不足之处,比如对异常的处理不如 Promise 方便,但也可以通过 try catch 的方式处理,或者实际项目的通用处理错误方式处理。具体用法如下图:
4、还有一种是 generate 函数的方式,个人觉得用法比较复杂,代码写起来也不简介,这里不做推荐