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)
        })
  • 相关阅读:
    防抖节流函数
    富文本编辑器tinymce在vue中的使用
    vue脚手架中检测lodop安装情况
    打印插件LODOP Vue中的使用
    vue打包后刷新页面报错:Unexpected token <
    Bootstrap-table表格插件的使用方法
    jsTree树插件
    Vue监控器watch的全面解析
    Vue计算属性computed的全面解析
    基于JQuery可拖动列表格插件DataTables的踩坑记
  • 原文地址:https://www.cnblogs.com/zph666/p/11751926.html
Copyright © 2011-2022 走看看