zoukankan      html  css  js  c++  java
  • 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);的数据
                })
  • 相关阅读:
    hdu2138(求素数)
    hdu2104
    poj1664(放苹果)
    数塔问题给你有哪些启示?
    汉诺塔问题(1)
    算法的力量(转李开复)
    最长子序列问题之系列一
    forward和redirect的区别
    group by 和having
    java中的多态三要素是什么?
  • 原文地址:https://www.cnblogs.com/Dark-fire-liehuo/p/11397049.html
Copyright © 2011-2022 走看看