微信小程序网络请求封装promise

本文介绍了一种基于Promise封装网络请求的方法,包括配置主域名、实现网络请求的Promise化、统一管理API接口以及如何在页面中调用这些接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络请求封装promise

(1)封装配置文件
global.js
// 定义主域名
const  url = "http://localhost:3000";

export default url;
(2)封装网络请求promise
http.js文件

// 封装网络请求,变成promise形式
import  url from  "./global"

const http = (options={}) => {
  /*
    options = {
      url:"/login", 
      data:{},
      method:"",
      header
    }
  */
  return new Promise((resolve, reject) => {
    wx.request({
      // http://localhost:3000/login
      url: url + options.url, //  服务器地址
      data:options.data || {},
      header:options.header ||  {
        "content-type": "application/json"
      },
      timeout: 30000, // 请求超时时间,  默认是60秒
      method: options.method  || "get", //post  put  delete
      success(res) {
        resolve(res)
      },
      fail(err){
        reject(err)
      }
    })

  })

}


export default http;
(3)统一管理api接口
api.js文件

// 统一管理接口文件
import  http  from  "./http"
// 1.获取商品
const  _getProducts = (data={})=>{
  var options = {
    url:"/products",
    data
  }
  return  http(options);
}

// 2.执行登录
const _doLogin = (data={})=>{
  var options = {
    url:"/login",
    method:"post",
    data,
  }
  return http(options)
}


export  default {
  _getProducts,_doLogin
}
(4)页面使用api
import  api  from "../../utils/api"
Page({
	async _getInfo() {
    // let options = {
    //   url: "/products",
    //   data: {
    //     username: "root"
    //   }
    // }
    // // console.log(http)
    // http(options).then(res => {
    //   console.log(res)
    // })
    // api._getProducts().then(res=>{
    //   console.log(res)
    // })

     let  res =  await api._getProducts({pass:123456});

     console.log(res)
  }
})
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值