SOURCE

// 利用promise 和Generator实现一个async/await
// async function a(){
//   let result = await sleep(5000)
//   console.log(result)
// }
function sleep(wait){
  return new Promise((resolve,reject)=>{
    setTimeout(()=>{
      resolve(`我是${wait}执行后的结果`)
    },wait)
  })
}
function c(){
 let ret = co(function* (){
     let result  = yield sleep(1000)
     console.log("one")
     let result2  = yield sleep(2000)
     console.log("two")
      let result3  = yield sleep(3000)
     console.log("three")
 })
 return ret
}
function co(genFn){
  return new Promise((resolve,reject)=>{
    let gen = genFn()
    let num = 0
    function step(key,arg){
      let info = {}
      try {
        info = gen[key](arg)
      }catch(error){
        reject(error)
      }
      if(info.done){
         console.log(num++)
        resolve(info.value)
      }else {
        return Promise.resolve((info.value)).then(v=>{
             console.log(num++)
             return step('next',v)
        }).catch((error)=>{
           // console.log(num++)
          return step('throw',error)
        })
      }
    }
    step('next')
  })
}
async function dd(){
  console.log("a")
  let result = await 1
  console.log(result)
  let result2 = await 2
  console.log(result2)
   let result3 = await 3
  console.log(result3)
}
console.log("script start")
// c()
dd()
Promise.resolve().then(()=>{
  console.log(123)
  Promise.resolve().then(()=>{
    console.log(2222)
  })
})
console.log("script end")





















console 命令行工具 X clear

                    
>
console