Ajax請(qǐng)求成功后return無法接收到返回值的問題及解決方案
項(xiàng)目中需要頻繁的用到ajax請(qǐng)求,所以就想用一個(gè)方法將整個(gè)請(qǐng)求封裝起來,直接調(diào)用方法傳遞參數(shù),然后返回請(qǐng)求結(jié)果就可以了。
源代碼如下:
getAddressInfo(lng, lat) {
axios.get("/proxy/reverse_geocoding/v3/?ak=" + BDAK + "&output=json&coordtype=wgs84ll&location=" +
"" + lat + "," + lng, {
dataType: "JSONP"
}).then(res => {
return res
})
}調(diào)用這個(gè)方法之后,一直無法接收到return的值,一直都是undefined
后來百度查看原因是因?yàn)椋琣jax是異步請(qǐng)求,當(dāng)js代碼執(zhí)行到這里的時(shí)候,不會(huì)等待異步請(qǐng)求完畢,就直接return了,所以值就一直是undefined
針對(duì)這個(gè)問題,我們可以使用promise,就可以解決
return new Promise((resolve, reject) => {
接口請(qǐng)求成功就resolve出去
失敗就reject出去
})export function getAddressInfo(lng, lat) {
return new Promise((resolve, reject) => {
axios.get("/proxy/reverse_geocoding/v3/?ak=" + BDAK + "&output=json&coordtype=wgs84ll&location=" +
"" + lat + "," + lng, {
dataType: "JSONP"
}).then(res => {
resolve(res)
}).catch(err => {
reject('')
})
})
}到此這篇關(guān)于ajax請(qǐng)求成功后return無法接收到返回值的文章就介紹到這了,更多相關(guān)ajax無法接收到返回值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
laypage前端分頁插件實(shí)現(xiàn)ajax異步分頁
layPage是一款多功能的js分頁組件,即適用于異步分頁,又可用于傳統(tǒng)的整頁刷新跳頁,還支持信息流加載,并且可無縫遷移至Node.js平臺(tái),這篇文章主要介紹了laypage前端分頁插件,實(shí)現(xiàn)ajax異步分頁,需要的朋友可以參考下2016-05-05
ajax實(shí)現(xiàn)的提交文章前進(jìn)行敏感詞審核的代碼
在做“文章敏感詞匯審核”功能的時(shí)候,開始在把“審核”放在插入數(shù)據(jù)庫的時(shí)候,后來想有一個(gè)功能,能在用戶點(diǎn)擊“提交”按鈕的時(shí)候,給一個(gè)提示。這樣相對(duì)“友好”那么點(diǎn)。2010-02-02
Ajax 框架之SSM整合框架實(shí)現(xiàn)ajax校驗(yàn)
這篇文章主要介紹了Ajax 框架之SSM整合框架實(shí)現(xiàn)ajax校驗(yàn),需要的朋友可以參考下2017-04-04
history保存列表頁ajax請(qǐng)求的狀態(tài)使用示例詳解
這篇文章主要為大家介紹了history保存列表頁ajax請(qǐng)求的狀態(tài)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Ajax實(shí)現(xiàn)無閃爍定時(shí)刷新頁面實(shí)例代碼
這篇文章主要介紹了使用Ajax技術(shù)實(shí)現(xiàn)無閃爍定時(shí)刷新頁面實(shí)例代碼,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-05-05

