返回Promise对象
小于 1 分钟javascript
reject返回机制
下面案例是在做访客系统中在微信小程序的工具类 http 中制作的返回异步对象,通过该案例介绍 reject 返回的机制
const audit$ = (id: number):Promise<IResponseResult<string>> => {
return new Promise((resolve,reject) => {
wx.request({
header: { "Content-Type": "application/json; charset=UTF-8" }, method: 'POST',
url: `https://域名/visitorbe/visit/audit`,
data: JSON.stringify({unionId,id}),
success: (res: any) => {// 返回直接结果
const { success, msg } = res.data;// res.data = 开发者后台响应来的 IResponseResult 类型
if(!success){
console.log('审核中后台返回失败');
wx.showToast({title: msg, icon:'none', duration: 3000});
// 下面调用 reject 并不会导致直接退出本函数,会继续向下执行到下一个 console.log
// 以及后面的 resolve,但是在调用者的逻辑链中只会进入 err 分支,而不会进入响应成功的分支
// 即后面的 resolve 效果等同没有执行
reject(res.data);
}
console.log('http#audit,请求后台审核成功,即将返回给调用者');
resolve(res.data);
},
fail: (err: any) => {
const remark = `请求用户unionId:${unionId}的访单统计数据时出现异常:${JSON.stringify(err)}`;
insertLogObj({page:'http',func:'getVisitStatistics$',remark:remark})
reject(err)
},
complete: () => {}
})
})
}
