微信小程序啟動(dòng)進(jìn)行自動(dòng)登錄問(wèn)題,偶爾提示code過(guò)期,是由于onLaunch啟動(dòng)進(jìn)行自動(dòng)登錄時(shí),code提交到服務(wù)端,還未返回結(jié)果,頁(yè)面page上執(zhí)行onload請(qǐng)求部分需要登錄的接口--由于此時(shí)還未返回登錄信息,--認(rèn)為當(dāng)前未登錄--跳轉(zhuǎn)到登錄頁(yè),登錄界面服務(wù)端返回自動(dòng)登錄用戶信息,此時(shí)登錄界面用戶點(diǎn)擊登錄按鈕,提示code已被使用,無(wú)法在進(jìn)行登錄操作,原理上就是onLaunch未執(zhí)行完就執(zhí)行了page--onload導(dǎo)致出現(xiàn)問(wèn)題,解決辦法,控制執(zhí)行完onLaunch再去執(zhí)行page--onload,有以下3中方法:
解決辦法
定義回調(diào)函數(shù), onload里獲取不到東西就一直獲取,不執(zhí)行下一步操作,直到獲取到app.js的數(shù)據(jù)才繼續(xù)執(zhí)行。若login返回為空,則給app.js注冊(cè)一個(gè)loginSuccessCallback回調(diào),這個(gè)回調(diào)方法的執(zhí)行時(shí)機(jī),就是app.js中的異步請(qǐng)求完畢
把 app.js 中的 onLaunch 中方法拿到 index.js 文件中,按照自己的邏輯寫(xiě)
使用promise
1.


2.

3.

參考連接http://www.itdecent.cn/p/485d480fea19