最近遇到一個問題,appjs的函數方法 會比 其他頁面的js後執行,也就是說,若是我在其他頁面用到了appjs裏面的數據就會報錯,對於這個問題,我前思後想不少辦法,什麼promise,什麼typeof cb == "function" && cb(data),第一個吧稍感複雜,第二個呢有沒法實時回調數據給其他頁面,致使必須得用定時器的辦法來監聽返回,後來得知一個辦法,十分霸道,並且簡單,代碼以下:小程序
var app = getApp() //方法名本身定義 app.getInfoCallback = res => { app.getInfoCallback = res => { console.log('查看獲得的數據:', res) }
if (this.getInfoCallback ){ //data 爲須要傳入的數據 this.getInfoCallback (data) }
在咱們須要數據的地方定義一個方法在app.js上,當小程序運行到接收數據這個地方時,判斷一下這個方法是否存在,若是存在,那麼說明其他頁面已經超前執行,那麼傳入所需值,其他頁面的該函數會接收該值,程序運行正常