js async02

function resolveAfter2Seconds() {
  console.log(new Date().getSeconds())
  console.log('starting slow promise')
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('slow')
      console.log(new Date().getSeconds())
      console.log('slow promise is done')
    }, 2000 )
  })
}
function resolveAfter1Second() {
  console.log(new Date().getSeconds())
  console.log('starting fast promise')
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('fast')
      console.log(new Date().getSeconds())
      console.log('fast promise is done')
    }, 1000 )
  })
}
var sequentialStart = async function() {
  console.log(new Date().getSeconds())
  console.log('==SQUENTIAL START==')

  // 1. Execution gets here almost instantly
  const slow = await resolveAfter2Seconds()
  console.log(new Date().getSeconds())
  console.log(slow)
  const fast = await resolveAfter1Second()
  console.log(new Date().getSeconds())
  console.log(fast)
}
sequentialStart()

//

28
==SQUENTIAL START==
28
starting slow promise
30
slow promise is done
30
slow
30
starting fast promise
31
fast promise is done
31
fast

猜你喜欢

转载自www.cnblogs.com/anch/p/12200408.html