業(yè)務(wù)需求是,維護登錄態(tài)的代碼寫在app.js里的,獲取到登錄態(tài)后保存到globaldata里,子頁面的請求接口都需要攜帶登錄態(tài),直接拿globaldata里的登錄態(tài)就可以。遇到的問題是,經(jīng)常子頁面比如index頁面里的代碼在app.js執(zhí)行完畢前就執(zhí)行,就拿不到globaldata里的登錄態(tài)。我的思路是能不能把app.js里維護登錄態(tài)的代碼用Promise改寫一下,然后把Promise實例放到globaldata里,子頁面比如index頁面取globaldata的Promise實例等待狀態(tài)變?yōu)閞esolve時就可以拿到登錄態(tài)然后再請求接口了。下面是我回調(diào)函數(shù)方式維護登錄態(tài)的大體流程:請教大佬怎么改寫呢?wx.getStorage({//Storage里取登錄態(tài)key:'loginState',success(res){//登錄態(tài)存在wx.checkSession({success(){//session_key未過期},fail(){//session_key已經(jīng)失效,需要重新執(zhí)行登錄流程wx.login({success(val){wx.request({url:'https://test.com/onLogin',data:{code:val.code},success(data){this.globalData.uid=data.uid;//將后端返回的登錄態(tài)uid保存到globalData方便子頁面使用}})}})//重新登錄}})},fail(){wx.login()//登錄態(tài)不存在,重新登錄}})
有大佬遇到過這個問題嗎:請教微信小程序維護登錄態(tài)怎么使用Promise改寫?萬分感謝
慕田峪4524236
2019-08-06 00:13:38