这是我的 axios 函数
const requestAllSubPosts = (sub,epoch,count) => {
const res = {};
const sub_url = `https://api.pushshift.io/reddit/search/submission/?subreddit=${sub}&limit=1000&sort=desc&before=${epoch}`;
return axios
.get(sub_url)
.then(response => {
const d = response.data.data;
if(d.length > 0) {
subFetchEpoch = d[d.length - 1].created_utc;
subDataArray = subDataArray.concat(d);
count++;
requestAllSubPosts(sub,subFetchEpoch,count)
}
else {
console.log('data-empty');
res.data = subDataArray;
res.epoch = subFetchEpoch;
console.log(res); <-- WORKING
return res ; <-- NOT WORKING
}
})
.catch(error => {
return error.message
});
}
我在某种循环中使用 axios,并获取数据直到响应为空。之后我想返回父函数中附加的数据。
这是父函数。我调用 axios 并记录响应。但我没有收到任何回复
async function fetchAllSubPosts (sub, epoch) {
const today = moment(new Date()).valueOf();
// let ep_a = moment(ep).valueOf()
let dataArray = [];
let resp = await requestAllSubPosts(sub, ep, 1)
console.log({resp}); <-- NOT WORKING
}
最佳答案
当您递归调用 requestAllSubPosts()
时,then()
没有 return
,因此默认情况下将返回 undefined
code> 到链中的下一个 then()
或 await
您想要从递归调用中返回
promise 。
更改:
requestAllSubPosts(sub,subFetchEpoch,count)
至
return requestAllSubPosts(sub,subFetchEpoch,count)
关于javascript - 使用 async wait 时 axios 不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58901684/