微信小程序api怎么promise化

微信小程序api怎么promise化,第1张

默认情况下,小程序官方提供的异步API都是基于回调函数实现的,这样就容易造成回调地狱的问题,代码的可读性、维护性差。API Promise化,指的是通过额外的配置,将官方提供的、基于回调函数的异步 API,升级改造为基于 Promise 的异步 API,从而提高代码的可读性、维护性,避免回调地狱的问题。实现API Promise化主要依赖于miniprogram-api-promise这个第三方的州戚 npm 包。首先需要确认已经正确安装了node,使用的开发工具为微信官方的微伍谨信开发者工具。

在项目文件夹下对项目进行初始化,执行npm init -y 此时项目文件夹下会创建package.json文件。 执行npm i --save miniprogram-api-promise安装第三方包。此时会在项目根目录下创建node_modules文件夹。 选择  工具-->构建npm  等待构建完成点击确定,此时会创建miniprogram_npm文件夹。

在入口文件app.js中按需引入。

import {promisifyAll} from "miniprogram-api-promise"

const wxp=wx.p={}

promisifyAll(wx,wxp)

然后就可以通过wx.p来调用promise化的api。举个例子在test.js文件中

async getTestData(){

const {data:res}=await wx.p.request({methods:'册橘陵GET',url: 'https://xxx.xxx.xx', })

1.第一步建立http文件夹 再建立http.js

2.第二步封装具薯态孝数稿体的请求,建立api.js

3.第三步在页面调用接闭颤口:

var requestHandler = {

  params: {},

  api: '',

  type: '',

  success: function (res) {

  },

  fail: function 升汪() {

  },

}

//GET请求

function GET(requestHandler) {

  request('GET', requestHandler)

}

//POST请求

function POST(requestHandler) {

  request('POST', requestHandler)

}

function request(method, requestHandler) {

  //注意:可以对params加密等处理

  var params = requestHandler.params

  // params.token = wx.getStorageSync('token'唤前)这里可以写每次请求都必带的参数

  var api = requestHandler.api

  wx.request({

    url: API_URL + api,

    data: params,

    method: method,

    header: {

      'Content-Type': 'application/x-www-form-urlencoded'

    },

    success: function (res) {

      if (res.data.code == 你后台返回的状态码) {

        requestHandler.success(res)

      } else {

        requestHandler.success(res)

      }

    },

    fail: function () {

      requestHandler.fail()

    },

    complete: function () {

    }

  })

}

module.exports = {

  GET: GET,

  POST: POST,

  API_URL: API_URL

}

   request.POST({

       吵链仔api:'/Login/login',

       params:{

       password:this.data.password,

       },

       success(res) {

         if(res.data.code == 后台返回的状态码) {

          request.showToast(res.data.msg)

          setTimeout(()=>{

            wx.reLaunch({

              url:'../index/index'

            })

          },1000)

         } else {

          request.showToast(res.data.msg)

         }

       }

     })


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12354088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存