js async04

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 )
  })
}
const concurrentPromise = function() {
  console.log('CONSURRENT START WITH promise at: ' + new Date().getSeconds())
  return Promise.all([resolveAfter2Seconds(), resolveAfter1Second()]).then(messages => {
    console.log(messages[0] + ' at: ' + new Date().getSeconds()) 
    console.log(messages[1] + ' at: ' + new Date().getSeconds())
  })
}
concurrentPromise()

//

CONSURRENT START WITH promise at: 42
slow start at: 42
fast start at: 42
fast done at: 43
slow done at: 44
slow at: 44
fast at: 44

猜你喜欢

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