위챗 애플릿 비동기 요청 해결 방법
2522 단어 위챗 애플릿
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 캐시가 존재하는지 판단하는 이유는 첫째, 불필요한 요청을 피하는 것이고, 둘째, 중복 요청을 피하는 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
유니앱, 위챗 애플릿에서 MQTT 사용 문제(1)MQTT.js는 JavaScript로 작성된 MQTT 프로토콜의 클라이언트 라이브러리로 Node에 사용할 수 있습니다.js와 브라우저.노드에서.js단은 전역 설치를 통해 명령행 연결을 사용할 수 있으며 MQTT...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.