Ajax請求成功后return無法接收到返回值的問題及解決方案
更新時間:2023年10月12日 15:53:16 作者:Koreyoshi·
項目中需要頻繁的用到ajax請求,所以就想用一個方法將整個請求封裝起來,直接調用方法傳遞參數(shù),然后返回請求結果就可以了,這篇文章主要介紹了ajax請求成功后return無法接收到返回值,需要的朋友可以參考下
項目中需要頻繁的用到ajax請求,所以就想用一個方法將整個請求封裝起來,直接調用方法傳遞參數(shù),然后返回請求結果就可以了。
源代碼如下:
getAddressInfo(lng, lat) { axios.get("/proxy/reverse_geocoding/v3/?ak=" + BDAK + "&output=json&coordtype=wgs84ll&location=" + "" + lat + "," + lng, { dataType: "JSONP" }).then(res => { return res }) }
調用這個方法之后,一直無法接收到return的值,一直都是undefined
后來百度查看原因是因為,ajax是異步請求,當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('') }) }) }
到此這篇關于ajax請求成功后return無法接收到返回值的文章就介紹到這了,更多相關ajax無法接收到返回值內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!