回调地狱,Promise对象、async函数

   //  promise
    function getTea(fn) {
      setTimeout(() => {
        fn('奶茶')
      }, 1000)
    }
    function hotPort(fn) {
      setTimeout(() => {
        fn('火锅')
      }, 2000)
    }

    // 1.直接执行,先奶茶后火锅
    // let tea = getTea(function (data) {
    //   console.log(data);
    // })
    // let port = hotPort(function (data) {
    //   console.log(data);
    // })

    //2.改为 先吃火锅,再喝奶茶
    // 2.1 回调地狱
    // hotPort(function (data) {
    //   console.log(data);
    //   getTea(function (data) {
    //     console.log(data);
    //   })
    // })

    // 2.2 promise 对象
    function getTea() {
      return new Promise(function (resolve) {
        setTimeout(() => {
          resolve('奶茶')
        }, 1000)
      })
    }

    function hotPort() {
      return new Promise(function (resolve) {
        setTimeout(() => {
          resolve('火锅')
        }, 2000)
      })
    }

    //火锅、奶茶、奶茶、火锅
    // hotPort().then(data => {
    //   console.log(data);
    //   //then 里边return一个promise对象可继续链式调用
    //   return getTea()
    // }).then(data => {
    //   console.log(data)
    //   return getTea()
    // }).then(data => {
    //   console.log(data)
    //   return hotPort()
    // }).then(data => {
    //   console.log(data)
    // })

    // 2.3 改为async await 函数 (火锅+奶茶)
    // await 后边跟的promise对象,直接取出这个promise对象的resolve函数的值(取代then的用法)
    // 接2.2 的两个promise对象
    async function getVal() {
      //await 后边直接获取resolve传递出来的异步数据
      let port = await hotPort()
      console.log(port);
      let tea = await getTea()
      console.log(tea);
      console.log(port);
      console.log(tea);
    }
    getVal()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值