微信小程序promise

216 阅读1分钟

使用promise解决函数回调地狱

编写一个函数用来调取数据:

    let baseUrl = 'https://api.shop.eduwork.cn';
    return new Promise((resolve,reject)=>{
        wx.request({
          url: baseUrl + path,
          method,
          data,
          header:{
            Authorization:''
          },
          success:res=>{
              resolve(res.data)
          },
          fail:err=>{
              reject(err)
          }
        })
    })
}

再将该函数导出

    http
  }
  

再编写一个调用该函数的函数并导出:

const { http } = require('./http')
const loginHttp = (path,data,method) => http(path,data,method)

module.exports = {
    loginHttp
  }
  

在需要用到该函数的js里调用:

const { loginHttp } = require('../../http/api')

在onload里使用:

        .then(res=>{
            console.log(res)
        })
        .catch(err=>{
            console.log(err)
            console.log('渲染页面')
        })

使用promise获取的数据可以用.then来获取

            console.log(res)
        })

也可以在出现问题时使用.catch使页面不报错并展示出错时的页面:

            console.log(err)
            console.log('正常渲染页面')
        })