在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  HTML/ 微信小程序中異步獲取的數(shù)據(jù)如何在其他頁(yè)面中使用?

微信小程序中異步獲取的數(shù)據(jù)如何在其他頁(yè)面中使用?

業(yè)務(wù)環(huán)境
我在app.js中調(diào)用了后臺(tái)接口獲取了用戶(hù)信息,并存儲(chǔ)在globalData中。
在app.json的pages中的第一個(gè)是A頁(yè)面,我的理解是pages里的第一個(gè)就是進(jìn)入小程序的首頁(yè)。
我在A頁(yè)面中會(huì)調(diào)用另一個(gè)接口,但是參數(shù)是app.js中調(diào)用接口返回的數(shù)據(jù)。
問(wèn)題
當(dāng)進(jìn)入小程序后,自動(dòng)進(jìn)入了A頁(yè)面。app.js中的請(qǐng)求已經(jīng)發(fā)送(返回的數(shù)據(jù)還沒(méi)有拿到),但是此時(shí)在A頁(yè)面中調(diào)用接口的參數(shù)還是underfind(參數(shù)就是app.js里的返回的數(shù)據(jù)),所以導(dǎo)致調(diào)用失敗。

微信小程序里有像vue那種監(jiān)聽(tīng)某些數(shù)據(jù)的方法嗎?或許我可以監(jiān)聽(tīng)app.js里返回的數(shù)據(jù),當(dāng)改變了(視為拿到數(shù)據(jù)了)再去A頁(yè)面中調(diào)用接口。但是我不知道是不是有這種方法,或者有別的方法可以解決這樣的問(wèn)題。
請(qǐng)問(wèn)這種應(yīng)該怎么解決?

回答
編輯回答
陌如玉

方法一:小程序沒(méi)有很好的監(jiān)聽(tīng)方法,我的做法是增加一個(gè)啟動(dòng)頁(yè),在啟動(dòng)頁(yè)面里調(diào)用加載需要的初始化數(shù)據(jù),確保所有數(shù)據(jù)都被加載。

方法二:按你的需求起始沒(méi)必要做監(jiān)聽(tīng)這么麻煩,你直接通過(guò)函數(shù)回調(diào)或者promise來(lái)處理,在app.js中增加獲取數(shù)據(jù)的方法,如getUserInfo,將返回結(jié)果通過(guò)回調(diào)傳回來(lái),在方法中判斷是否有緩存,有則直接從存儲(chǔ)中取數(shù)據(jù)返回即可。這樣你的頁(yè)面在顯示前會(huì)確保數(shù)據(jù)被拿到。

2017年3月3日 10:06