【微信小程序】封装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-03-30微信小程序的网络设置,及网络请求:wx.request(OBJECT)
- 2024-01-22基于taro搭建小程序多项目框架
- 2024-01-13小程序开发:在插件市场寻找步骤条组件并二开
- 2024-01-05钉钉小程序生态—企业机器人加互动卡片,改善用户体验的开始!
- 2023-12-29【UniApp】-uni-app-打包成小程序
- 2023-12-26性能翻倍!京东亿级体量小程序优化实践
- 2023-12-25小程序优化:第三方SDK过大解决方案
- 2023-11-26微信小程序文件预览和下载-文件系统
- 2023-11-2652天学习微信小程序计划No.2:注册小程序账号&安装开发者工具
- 2023-11-1952天学习微信小程序计划No.1:小程序简介