pwindy  
在完成任务的同时,还需要不断“复盘”,不论你多么的忙,都需要留下时间思考,可以思考哪些地方做的好,哪些地方我们可以改进,应该如何改进,注重总结才是王道

0.直接使用传统的回调函数来调用后端api接口


  // 通过回调函数,来使用接口数据
userAuthorized_back(){
    wx.getSetting({
        success: data => {
            if(data.authSetting['scope.address.userInfo']){
                wx.getUserInfo({
                    success: data => {
                        this.setData({
                            authorized: true,
                            userInfo: data.userInfo
                        })
                    }
                })
            }
        }
    })
}

1.创建promisic函数

让后端api接口返回promise对象前提是返回的不是promise对象)

// 可以解决小程序官方api不能返回promise对象的问题,可以成功返回promise对象  
// func是一个函数
const promisic = function(func){
    return function(params = {}){
        return new Promise((resolve, reject) => {
            const args = Object.assign(params, {
                success: (res) => {
                    resolve(res)
                },  
                fail: (err) => {
                    reject(err)
                }
            })
            func(args)
        })
    }
}

2.使用promisic函数,通过promise对象

2.1.将promisic函数导出

export { promisic }

2.2.在使用promisic函数的页面中引入

import { promisic } from "./utils/randomfun"

2.3.使用引入的promisic函数

// 通过promise,来使用接口数据
userAuthorized_promise(){
    promisic(wx.getSetting)()
    .then(data => {
        if(data.authSetting['scope.address.userInfo']){
            return promisic(wx.getUserInfo)()
        }
        return false
    })
    .then(data => {
        if(!data) return
        this.setData({
            authorized: true,
            userInfo: data.userInfo            
        })
    })
}

3.通过async...await来调用接口---变相让异步变成同步

// 通过async和await,来使用接口数据
async userAuthorized_asyncawait(){
    const data = await promisic(wx.getSetting)()
    if(data.authSetting['scope.address.userInfo']){
        const res = await promisic(wx.getUserInfo)()
        const userInfo = res.userInfo
        this.setData({
            authorized: true,
            userInfo               
        })
    }
}

 

posted on 2022-06-14 11:20  pwindy  阅读(515)  评论(0)    收藏  举报