const sleep = (time) => {
return new Promise((resolve, reject)=> {
setTimeout(resolve, time)
})
}
async function test(){
for(let i=0; i<10; i++) {
await sleep(1000);
console.log(i);
}
}
for
每执行一个循环,执行好再做 await
后面的 sleep
函数,因为 sleep
里 return
的是 promise
,等 promise
得 resolve
或者 reject
执行后,才往下面执行。所以每次要等 setTimeout
执行完,才会 resolve
出来。async
应该是对 generator
的封装。 generator
底层是 iterator
。
https://segmentfault.com/q/1010000008848230