我想回傳 axios 的回應,但將 console.log 設為未定義。
getFirstPageData();
async function getFirstPageData() {
const res = await getPageData(1) ;
console.log("res--->", res);
}
async function getPageData(page_num){
let pageNum = page_num;
console.log("page_num" , pageNum);
let path = "https://......"
axios.get(path).then(
(response) => {
var result = response.data;
console.log(result);
return result;
},
(error) => {
console.log(error);
}
);
}
這是等待還是異步中的問題。以任何方式回傳此回應。
uj5u.com熱心網友回復:
鑒于我對您的帖子的評論以及您正在嘗試做的事情。你getPageData應該像下面這樣從 axios 回傳承諾。
function getPageData(page_num){
let pageNum = page_num;
console.log("page_num" , pageNum);
let path = "https://......"
return axios.get(path).then(
(response) => {
var result = response.data;
console.log(result);
return result;
},
(error) => {
console.log(error);
}
);
}
從函式中取消異步,getPageData因為它不是異步函式。它回傳一個承諾,您將從中獲取資料const res = await getPageData(1) ;
uj5u.com熱心網友回復:
您需要回傳回傳的承諾axios.get(),這將使承諾鏈保持完整。
我還建議加入拒絕處理程式以將任何錯誤傳播到頂層,再次保持鏈完整。
getFirstPageData();
async function getFirstPageData() {
try {
const res = await getPageData(1) ;
console.log("res--->", res);
} catch (error) {
console.error('An error occurred:', error);
}
}
async function getPageData(page_num){
let pageNum = page_num;
console.log("page_num" , pageNum);
let path = "https://......"
return axios.get(path).then(
(response) => {
var result = response.data;
console.log(result);
return result;
},
(error) => {
console.error(error);
throw error;
}
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/322869.html
