【微信小程序】封装request请求模块/wx小程序手动封装Promise
2022/8/8 1:23:14
本文主要是介绍【微信小程序】封装request请求模块/wx小程序手动封装Promise,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// 封装请求模块 const Promise = require('./Promise.js'); const baseUrl = 'http://127.0.0.1:8080/'; function request(method, url, data) { return new Promise((res,rej) => { let header = { 'content-type': 'application/json' }; wx.request({ url: baseUrl + url, method: method, header: header, data: method === POST ? JSON.stringify(data) : data, success: (result) => { res(result); }, fail: (err) => { rej(err); } }) }) } module.exports = request
// 手动封装Promise function promise(toWait) { this.t = new Date(); this.isPromiseObject = 1; this.toWait = toWait; this.thenList = []; this.thenIndex = 0; this.res = function (data) { var thenInfo = this.thenList[this.thenIndex]; if(!thenInfo) { return; } var r = thenInfo.successCallback(data); if (r && r.isPromiseObject) { this.toWait = r.toWait; this.toWait(this.res.bind(this), this.rej.bind(this)); } this.thenIndex++; } this.rej = function (error) { var thenInfo = this.thenList[this.thenIndex]; if(typeof thenInfo.failedCallback!='undefined'){ thenInfo.failedCallback(error); } else { throw '未捕获的promise错误,请这then方法里,传递reject参数'; } } this.fired = false; this.then = function (sc, fc) { var then = { 'successCallback': sc, 'failedCallback': fc } this.thenList.push(then); if (!this.fired) { this.fired = true; this.toWait(this.res.bind(this), this.rej.bind(this)); } return this; } } module.exports = promise;
这篇关于【微信小程序】封装request请求模块/wx小程序手动封装Promise的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20微信小程序开发入门指南
- 2024-12-20小程序 createCameraContext() 怎么实现识别条形码功能?-icode9专业技术文章分享
- 2024-11-22微信小程序的接口信息py可以抓到吗?-icode9专业技术文章分享
- 2024-11-22怎样解析出微信小程序二维码带的参数?-icode9专业技术文章分享
- 2024-11-22微信小程序二维码怎样解析成链接?-icode9专业技术文章分享
- 2024-11-22微信小程序接口地址的域名需要怎么设置?-icode9专业技术文章分享
- 2024-11-22微信小程序的业务域名有什么作用-icode9专业技术文章分享
- 2024-11-22微信小程序 image有类似html5的onload吗?-icode9专业技术文章分享
- 2024-11-22微信小程序中怎么实现文本内容超出行数后显示省略号?-icode9专业技术文章分享
- 2024-11-22微信小程序怎么实现分享样式定制和图片定制功能?-icode9专业技术文章分享