위챗 애플릿 비동기 요청 해결 방법

2522 단어 위챗 애플릿
작은 프로그램은 일반적으로 token을 사용하여 사용자의 신분을 식별하고 매번 token을 얻은 후에 다음 작업을 해야 한다.Token을 가져오면 Token 동기화 캐시,
app.js:
login: function () {
        var that = this;
        return new Promise(function (resolve, reject) {
            if (wx.getStorageSync('token')) {
                resolve(wx.getStorageSync('token'))
            } else {
                wx.login({
                    success: function (res) {
                        if (res.code) {
                            wx.request({
                                url: that.baseUrl + 'tt/wx/' + res.code,
                                header: {
                                    'content-type': 'application/json',
                                    'cld.stats.page_entry': that.globalData.scene,
                                    'version': that.globalData.version
                                },
                                method: 'GET',
                                success: function (e) {
                                    if (e.statusCode == 200) {
                                        that.globalData.token = e.data.token;
                                        wx.setStorageSync('token', e.data.token);
                                        resolve(e.data.token)
                                    }
                                },
                                fail: () => {

                                }
                            })
                        } else {
                            console.log(' !' + res.errMsg)
                        }
                    }
                });
            }
        })
    },

login 방법을 호출할 때 로컬에 캐시된 token이 있는지 판단하고, 직접 되돌아오는 것이 있으면, 없으면 백그라운드에서 인터페이스를 통해 가져오고, 가져온 후에 token을 동기화합니다.
홈페이지 index.js, 페이지 onload를 불러올 때 뉴스 목록을 불러와야 합니다. 프로그램의 모든 요청은 비동기적으로 불러오기 때문에 캐시에서 token을 직접 가져옵니다. 찾을 수 없을 수도 있습니다. 이렇게 하면 index를 다시 불러올 수 있습니다.js에 이렇게 쓰여 있습니다. 구체적인 봉인 요청 방법은 저의 다른 블로그에 방법이 있습니다. 여기는 서술이 많지 않습니다.
app.login().then(() => {
   api.request(api.Url.newsList, 'POST', {
    type: 1,
    page:1
    }).then(res => {
        console.log('success:', res)
    }).catch(res => {
      console.log("fail:", res)
    }).finallly(()=>{
        console.log("finallly:",  )
    })
});

이렇게 하면 Token을 찾을 수 없는 상황을 피할 수 있다.login 방법에서 Token 캐시가 존재하는지 판단하는 이유는 첫째, 불필요한 요청을 피하는 것이고, 둘째, 중복 요청을 피하는 것이다.

좋은 웹페이지 즐겨찾기