async 函数
async 函数作为 Promise 对象的补充:
在写法上将可以将
callback组织成为同步形式,即内部各个await之间都是同步执行。但对于async函数外部,async函数整体仍是异步执行。- 从写法上改善了异步操作执行顺序不直观的问题。
从功能上,将一些多个异步操作全都封装在一个
async函数中,形成一个独立的异步模块。这有利于协同开发。// 将所有的 ajax 封装为一个异步模块 getResult // async 函数内部都是同步执行 // await 接收一个 Promise 对象 const getResult = async function () { const vue = `https://unpkg.com/vue@2.5.16/dist/vue.min.js` const react = `https://unpkg.com/react@16/umd/react.production.min.js` const result = [] const vueRes = await getSomeData(vue) const reactRes = await getSomeData(react) result.push(vueRes) result.push(reactRes) return result } // 异步模块可在任意处引用并调用该异步模块获取数据 getResult()1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17- 在
async函数内,函数执行至await处会暂停当前async函数的执行,直到await后的Promise对象状态发生改变后恢复async函数的内部代码执行。
- 在