es7给出了一个新的语法,让异步方法同步起来没有那么困难了,看代码:
/*
* 模拟网络请求的函数
*/
function request(param) {
return new Promise((resolve) => {
let time = Math.random() * 1000 //为了模拟每次请求的时长不同,这里每次等待随机时间0到1s
setTimeout(() => resolve({param, time}), time) //请求结束之后,调用回调函数
})
}
async function start() {
let {param: p1, time: t1} = await request(1)
console.log(p1, t1)
let {param: p2, time: t2} = await request(2)
console.log(p2, t2)
let {param: p3, time: t3} = await request(3)
console.log(p3, t3)
}
start()
平时也能遇到其他的异步方法, 但是都没有看起来能批量执行的,要不就是一层回调函数淘一层回调函数,最后导致层级太多,代码看起来太乱.
上面的代码就能好的解决了函数异步批量执行,代码看起来规整很多,希望对大家有所帮助!!!!!