之前没有去详细的了解继发关系于并发关系,这些都是很基础的东西,自从阮一峰老师的ES6文档中async函数里再次看到这个关系,重新了解下。
继发:
async function fun(){
let foo = await fun1()
let bar = await fun2()
//这样的写法是继发的 相当于foo执行完毕后再执行bar
}
以上代码fun1与fun2是两个独立的异步操作,被写成继发关系比较耗时,只有fun1执行完才会执行fun2,如果互不依赖的话完全可以写成同时触发
并发:
//第一种
async function fun(){
let fooFun = fun1();
let barFun = fun2();
let foo = await fooFun;
let bar = await barFun;
}
//第二种
let [foo,bar] = await Promise.all([fun1(),fun2()])
以上两种写法皆是同时触发,缩短了程序执行时间