Ajax請求成功后return無法接收到返回值的問題及解決方案
項目中需要頻繁的用到ajax請求,所以就想用一個方法將整個請求封裝起來,直接調(diào)用方法傳遞參數(shù),然后返回請求結(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)用這個方法之后,一直無法接收到return的值,一直都是undefined
后來百度查看原因是因為,ajax是異步請求,當(dāng)js代碼執(zhí)行到這里的時候,不會等待異步請求完畢,就直接return了,所以值就一直是undefined
針對這個問題,我們可以使用promise,就可以解決
return new Promise((resolve, reject) => { 接口請求成功就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請求成功后return無法接收到返回值的文章就介紹到這了,更多相關(guān)ajax無法接收到返回值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
那些年,我還在學(xué)習(xí)Ajax 學(xué)習(xí)筆記
Ajax不用說,每個做web開發(fā)的同志都知道,因為它是學(xué)習(xí)web開發(fā)必經(jīng)之路,不管你是做asp.net,還是javaWeb,還是PHP2012-03-03