vue中,axios異步加載數(shù)據(jù),但是有的文件里面需要用到異步拿到的數(shù)據(jù),數(shù)據(jù)還沒拿到,文件已經(jīng)執(zhí)行了,這時候數(shù)據(jù)就是空,就會報錯,這個問題怎么解決?具體表現(xiàn):我這邊vue項目是進(jìn)入頁面的時候會調(diào)用一個login方法,然后設(shè)置localStorage,this.login().then(res => { if (res.code === 0) {
localStorage.setItem(res.data.access_token)
}
});然后有一個api.js文件,使用的是axios方法const instance = axios.create({ baseURL: config.BASE_URL, headers: { Authorization: localStorage.getItem('Authorization') || ''
}
});export default {
getList() { return instance.request({ url: '123', method: 'get'
})
}
}但是因為login方法還沒執(zhí)行完api.js文件就已經(jīng)執(zhí)行了,所以localStorage.getItem('Authorization')就是空導(dǎo)致報錯,請問這個問題怎么解決?
1 回答

慕碼人8056858
TA貢獻(xiàn)1803條經(jīng)驗 獲得超6個贊
我知道了,可以用函數(shù)來實現(xiàn),因為函數(shù)執(zhí)行是實時的
就像使用
const SaleClockAuctionContract = window.web3.eth.contract(SaleClockAuction.abi).at(SaleClockAuction.address);const KittyCoreContract = window.web3.eth.contract(KittyCore.abi).at(KittyCore.address);
應(yīng)該使用函數(shù)包裝起來,實時調(diào)用,這樣才不會因為文件加載順序而出現(xiàn)window.web3未定義的錯誤,
const SaleClockAuctionContract = () => { window.web3.eth.contract(SaleClockAuction.abi).at(SaleClockAuction.address); }const KittyCoreContract = () => { window.web3.eth.contract(KittyCore.abi).at(KittyCore.address); }
添加回答
舉報
0/150
提交
取消