调用Axios时从.then箭头函数返回数据始终为undefined的问题
问题原因
你的getData函数没有返回异步请求的结果。then/catch回调里的return只在回调内部生效,不会成为getData的返回值,所以外层await后拿到的自然是undefined。
修复方案
方案1:用try/catch替代then/catch(推荐,更贴合async/await的写法)
getData = async function (afgJSON) { console.log("step 2") try { const response = await axios.post(process.env.afgEndPoint, afgJSON, { headers: headers }) console.log("step 3") return response.data } catch (e) { console.log("step 3") return e.response.data } }
方案2:保留then/catch,返回整个Promise链
直接把axios请求的Promise链作为getData的返回值即可:
getData = async function (afgJSON) { console.log("step 2") return axios.post(process.env.afgEndPoint, afgJSON, { headers: headers }) .then((response) => { console.log("step 3") return response.data }) .catch((e) => { console.log("step 3") return e.response.data }) }
(注:async函数里直接return Promise也能被外层await正确处理,加不加await都可以)
内容的提问来源于stack exchange,提问作者Danielle
相关产品推荐
相关产品推荐

