zoukankan      html  css  js  c++  java
  • promise使用总结

    一,Promise实例,只要有then里面有return,就可以无线then

    特别注释:resolve 和 then里面的return  都可以返回Promise实例,如果promise实例触发了reject,都能走到最外层的reject

    function test() {
      return new Promise(resolve => {
        resolve(test2())
      })
    }
    
    function test2() {
      return new Promise((resolve, reject) => {
        if (Math.random() * 10 > 5) {
          resolve([])
        } else {
          reject(null)
        }
      })
    }
    
    test()
      .then(res => {
        console.log('success')
        console.log(res)
        return 1
      })
      .then(res => {
        console.log(res)
        return 2
      })
      .then(res => {
        console.log(res)
        return 3
      })
      .then(res => {
        console.log(res)
      })
      .catch(res => {
      console.log('error')
      console.log(res)
    })

    在then里面return promise

    function test() {
      return new Promise(resolve => {
        resolve()
      })
    }
    
    function test2() {
      return new Promise((resolve, reject) => {
        if (Math.random() * 10 > 5) {
          resolve([])
        } else {
          reject(null)
        }
      })
    }
    
    test()
      .then(res => {
        return test2()
      })
      .then(res => {
        console.log(res)
      })
      .catch(res => {
      console.log('error')
      console.log(res)
    })

    在resolve返回promise实例

    function test() {
      return new Promise(resolve => {
        resolve(test2())
      })
    }
    
    function test2() {
      return new Promise((resolve, reject) => {
        if (Math.random() * 10 > 5) {
          resolve([])
        } else {
          reject(null)
        }
      })
    }
    
    test()
      .then(res => {
        console.log(res)
      })
      .catch(res => {
      console.log('error')
      console.log(res)
    })

     Promise.all正确使用,console.log(num)打印的是一个多维数组,多维数组的长度,等于promise.all(Array)里面Array的长度

        Promise.all([axios(), axios()]).then((num) => {
          console.log(num)
        })
  • 相关阅读:
    7.1MongoDB之索引
    7.1MongoDB之排序
    6.30MongoDB之Limit与Skip方法
    6.30Java连接MongoDB进行操作练习
    6.30MongoDB之$type操作符
    6.30MongoDB之条件操作符
    6.30MongoDB之"查"
    6.29MongoDB之"改"
    c# 调用jar包
    sql server SQL 调试:无法启动 T-SQL 调试。未能附加到 SQL Server 进程
  • 原文地址:https://www.cnblogs.com/zph666/p/11751926.html
Copyright © 2011-2022 走看看