如何向回调函数中传参?

loginJustWithPhone: function (e) {
    //判断是否确认授权
    if (e.detail.errMsg == "getPhoneNumber:ok") {
        //获取手机号
        let phone = getPhoneNum(e.detail);
        console.log(phone);
        
    } else {
        console.log('已取消授权');


    }
},
function __setOpenidAndSessionKey(fun) {

wx.login({
    success: res => {
        // res.code 微信临时登录凭证
        //发送 res.code 到微信后台换取 openId, sessionKey

        wx.request({
            url: app.globalData.serverurl + 'xcx/getUserSO2.action?code=' + res.code,
            success: res => {
                res = res.data;

                if (res.status == 1) {
                    let codejson = JSON.parse(res.object);
                    let openid = codejson.openid;
                    let sessionKey = codejson.session_key;

                    wx.setStorage({
                        key: 'openid',
                        data: openid,
                    });

                    wx.setStorage({
                        key: 'sessionKey',
                        data: sessionKey,
                    });

                    fun();
                }
            }
        });
    }
});
}



export function getPhoneNum(rawdetail) {
__setOpenidAndSessionKey(function () {
    let WXBizDataCrypt = require('../js/WXBizDataCrypt.js');

    let sessionKey = wx.getStorageSync('sessionKey');
    // console.log(rawdetail);


    //第一个参数为appid
    let pc = new WXBizDataCrypt(appID, sessionKey);
    // console.log(pc);



    let data = pc.decryptData(rawdetail.encryptedData, rawdetail.iv);

    return data.phoneNumber;

});




//
//
}

getPhoneNum()中传入的rawdetail传不进__setOpenidAndSessionKey中去。

阅读 3.3k
2 个回答
//下面函数中的rawdetail参数去掉
export function getPhoneNum(rawdetail) {
    __setOpenidAndSessionKey(function (/*这里不需要rawdetail参数*/) {
        //...
    })
}

__setOpenidAndSessionKey的回调用个函数包起来,里面调用这个函数并传参

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题