async/await

定义promise方法:

function getFirstName() {
  console.log('first start')
  return new Promise(function (res, rej) {
    console.log('getFirstName');
    setTimeout(function () {
      console.log('fisrt finished')
      res("Bruce")
    }, 2000)
  })
}

  function getSecondName() {
    console.log('second start')
    return new Promise(function (res, rej) {
      console.log('getSecondName');

      setTimeout(function () {
        console.log('second finished')
        res("Lee")
      }, 1000)
    })
  }

串行

async function getName() {
  let firstName = await getFirstName();
  console.log('firstName:', firstName)
  console.log('------------')
  let secondName = await getSecondName();
  console.log('--------->>>>>>')

  console.log('firstName:', firstName)
  console.log('secondName:', secondName)

  return {
    firstName,
    secondName
  }
}

getName()
  .then(function (response) {
    console.log('response:', response)
  })

并发

async function getNameComplicate() {
    let promises = [];
    promises.push(getFirstName())
    promises.push(getSecondName())
    let [firstName, secondName] = await Promise.all(promises)
    return{
      firstName,
      secondName
    }
  }

getNameComplicate()
  .then(function (res) {
    console.log('res:', res)
  })