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)
        })
  • 相关阅读:
    ubuntu nginx 伪静态 设置
    ubuntu thinkphp pathinfo 404等问题
    ubuntu svn安装测试
    ubuntu zendDebugger.so 加载不上的问题
    ubuntu ssh安装
    nyoj-660-逃离地球
    nyoj-643-发短信
    nyoj-181-小明的难题
    nyoj-663-弟弟的作业
    nyoj-682-初学者的烦恼
  • 原文地址:https://www.cnblogs.com/zph666/p/11751926.html
Copyright © 2011-2022 走看看