异步常规操作

1
2
3
4
5
6
7
const fn1 = (async () => {
return 1;
})
fn1().then(res=>{
console.log( res );
});

等价于

1
2
3
4
5
6
7
8
9
const fn2 = () => {
return new Promise(resolve=>{
resolve(2)
})
}
fn2().then(res=>{
console.log( res );
});

异步执行循环

forEach map是同步操作 并行执行
while, do while, for in, for of是串行执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const sleep = (time: number) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(true)
}, time * 1000)
})
}

const main = async () => {
for (let i = 0; i < arr.length; i++) {
await sleep(1)
console.log(arr[i])
}
console.log('完成')
}