js async05

function resolveAfter2Seconds() {
  console.log('slow start at: ' + new Date().getSeconds())
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('slow')
      console.log('slow done at: ' + new Date().getSeconds())
    }, 2000 )
  })
}
function resolveAfter1Second() {
  console.log('fast start at: ' + new Date().getSeconds())
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('fast')
      console.log('fast done at: ' + new Date().getSeconds())
    }, 1000 )
  })
}
var parallel = async function() {
  console.log('==PARALLEL WITH await Promise.all== at: ' + new Date().getSeconds())
  await Promise.all([
    (async () => console.log(await resolveAfter2Seconds() + ' at: ' + new Date().getSeconds()))(),
    (async () => console.log(await resolveAfter1Second() + ' at: ' + new Date().getSeconds()))()
  ])
  console.log('parallel done at: ' + new Date().getSeconds())
}
parallel()

//

==PARALLEL WITH await Promise.all== at: 50
slow start at: 50
fast start at: 50
fast done at: 51
fast at: 51
slow done at: 52
slow at: 52
parallel done at: 52

猜你喜欢

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