如何利用 Promise 进行小程序 request 封装??

微信小程序request请求封装

文章需要 Promise 基础,以下为源码,可直接使用。

//写一个单独文件  request.js 我是写在了 utils 文件夹中
const domain = 'http://localhost:8080/' //  后台地址通用部分
/* 
 url 地址 
 data  参数
 method  方法 
 header 请求头
*/ 
export function serve(url, data,method,header) {
  return new Promise((resolve, reject) => {
    const request_ = new Promise((resolve, reject) => {
      resolve()
    })
    Promise.all([request_]).then(() => {
      wx.request({
        url: domain + url, 
        data,
        header: header || {"content-type":"application/json"},
        method:method || "GET",
        success: function(res) {
          resolve(res.data);
        },
        fail: function(res) {
          reject(res.data)
        },
        complete: function(res) {},
      })
    })
  })
}
// 上面代码结束,在写一个 api.js 文件,和上面文件同级,用来统一管理方法路径
import {
  serve
} from "./request.js";
const path = {
  login_url: 'login', //登录
  Index_url: 'index', //首页
}

export const api = {
  /* 登录 */
  login: (data = {}) => {
    return serve(path.login_url, data)
  },
  {
  Index:(data = {})=>{
	return serve(path.Index_url,data,"POST")
	}
  }
}
// 之后在 app.js 引入
const {api} = require('./utils/api.js');
let that;
App({
	 api,
	 data:{
	 time:''
	 },
	 onLaunch(){
	 	this.getLogin()
	 	
	 },
	 getLogin(){
		that = this
		let data = {
			name:'zhao',
			pas:'1234'
		}  // 参数
		this.api.login(data).then(res=>{
			console.log(res)
		})
	}
  }
)
//以上就是在 app.js 中使用方法
// 在正常页面使用方法 index.js 
const app = getApp()  // 必须引入
let that;
page({
	data:{
      list:[]
	},
	onLoad(){
	this.getList()
	},
	getList(){
		that  = this
		let data = {
			game_id:"123"
		}
		app.api.getIndex(data).then(res=>{
			that.setData({
				list:res.data.list
			})
		})
	}
})
// 以上就是在其他页面使用方法

感谢阅读!转载请注明出处🧐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值