前言:本文参考自文章:for循环使用await,for of以及for await of
几个for循环里使用await的方法让小编有点混乱,所以决定今天捋一捋,顺便把是否能用break也标一下:
其实for循环中使用await就分几种,看看哪个是生效的:
1、forEach:循环中使用await的写法(不生效):
array.forEach(async (item)=>{
let datas = await getDatas()
})
2、for of:循环中使用await的写法(生效):
for( let item of array ){
let datas = await getDatas()
break
}
3、for await of:循环的使用方法(生效):
for await (let item of array){
break
}
注意:
- forEach:没有break,循环不会等await执行而停留,await是无效的;
- for of:要使用在async异步方法里,执行期间,await之前的代码会执行,到了await会等待await执行完才继续往下执行,有break;
- for await of:也要用在async异步方法里,有break,但是它一般是使用在item是个异步方法的情况下,并不常见,场景如下面对应的例子,要遍历的数组元素是个异步请求,异步没回来之前整个for循环代码不执行: