【微信小程序】封装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-11-13微信小程序如何封装接口域名?-icode9专业技术文章分享
- 2024-11-13如何在微信小程序中实现直传功能?-icode9专业技术文章分享
- 2024-11-13如何在小程序的地图组件中添加标记和文字?-icode9专业技术文章分享
- 2024-11-13在微信小程序的地图组件中如何实现自定义标记和气泡?-icode9专业技术文章分享
- 2024-11-01微信小程序教程:零基础入门到实战
- 2024-11-01微信小程序全栈教程:从入门到实践
- 2024-10-31微信小程序怎么实现关注公众号功能-icode9专业技术文章分享
- 2024-10-30微信小程序cover-view,支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序的cover-image支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序web-view怎么设置高度?-icode9专业技术文章分享