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
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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现