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
