1. const sleep = (time) => {
    2. return new Promise((resolve, reject)=> {
    3. setTimeout(resolve, time)
    4. })
    5. }
    6. async function test(){
    7. for(let i=0; i<10; i++) {
    8. await sleep(1000);
    9. console.log(i);
    10. }
    11. }

    for 每执行一个循环,执行好再做 await 后面的 sleep 函数,因为 sleepreturn 的是 promise ,等 promiseresolve 或者 reject 执行后,才往下面执行。所以每次要等 setTimeout 执行完,才会 resolve 出来。
    async 应该是对 generator 的封装。 generator 底层是 iterator
    https://segmentfault.com/q/1010000008848230