uni-app中如何编写一个promise函数并调用
1.首先创建一个promise函数:minix --》pay.js
// 小程序端支付 // #ifdef MP-WEIXIN pay(path, paramsData) { console.log(arguments); paramsData.payment = 'minipay'; return new Promise((resolve, reject) => { //创建一个promise(),第一个参数resolve表示成功的返回参数,第二个参数reject表示失败的返回参数 if (paramsData.payment) { uni.showActionSheet({ itemList: ['微信支付', '支付宝支付'], success: function (res) { console.log(paramsData) paramsData.payment = 'minipay'// ['wxpay', 'alipay'][res.tapIndex] }, fail: function (err) { reject(err);//表示失败后返回的数据 } }); } else { uni.login({ provider: 'weixin', success: (loginRes) => { console.log(loginRes); paramsData.code = loginRes.code; this.$api[path].pay(paramsData).then(res => { console.log('你好你好年后') console.log(res) let resData = res.data.meta; this.order_id = res.data.id; // 小程序支付 uni.requestPayment({ provider: 'wxpay', appId: resData.appId, timeStamp: resData.timeStamp, nonceStr: resData.nonceStr, package: resData.package, signType: resData.signType, paySign: resData.paySign, success: (res) => { resolve(res);//表示成功后返回的数据 }, fail: (err) => { reject(err); } }); }); }, fail: err => { reject(err); } }); } }) } // #endif
2.调用上面封装好的函数:
other.veu:
引入pay.js中的函数pay
1. import pay from '@/mixins/pay.js';
2. 用this调用方法
this.pay("order", { id: id, operation: "pay" }).then(res => { console.log(res)//此处返回值是上面的resolve(res)的数据 }).catch(err => { console.log(err)//此处返回值是上面reject(err);的数据 })