promise的用法

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise#%E6%96%B9%E6%B3%95

1、promise实现异步调用

<!DOCTYPE html>

<head>
  <script type="text/javascript">

    const prom = new Promise((resolve, reject) => {
      function add_(a, b) {
        return a + b
      }
      resolve(add_(1, 2))
    })
    // 先执行add_()的返回然后在打印
    prom.then((data) => {
      setTimeout(() => {
        console.log(data)
      }, 2000)
    })
  </script>

</head>

2、promise链式调用

<!DOCTYPE html>

<head>
  <script type="text/javascript">
    function add_(a, b) {
      // 方法返回Promise对象
      return new Promise((resolve, reject) => {
        const sum = a + b
        resolve(sum)
        reject('error')
      })
    }
    var a = 1
    var b = 2
    // .then串联调用(链式调用)
    add_(a, b).then((data) => {
      console.log(`the sum of ${a} + ${b} = ${data}`)
      b += 1
      a = data
      return add_(a, b)
    }).then((data) => {
      console.log(`the sum of ${a} + ${b} = ${data}`)
      b += 1
      a = data
      return add_(a, b)
    }).then((data) => {
      console.log(`the sum of ${a} + ${b} = ${data}`)
      b += 1
      a = data
      return add_(a, b)
    }).then((data) => {
      console.log(`the sum of ${a} + ${b} = ${data}`)
    })
  </script>

</head>
posted @ 2020-01-14 10:29  turbolxq  阅读(119)  评论(0)    收藏  举报