笔记 :
axios 进行异步加载数据
加载axios
async function returnData() {
try {
data={参数}
const response = await axios.post('url', data);
const resTblist = response.data.data;
datajson = response.data;
leng = resTblist.length;
console.log(datajson)
console.log(leng)
console.log(resTblist);
return resTblist;
} catch (error) {
console.error("axios 请求失败:" ,error);
return [null];
}
}
// 使用 await 获取到 axios 的返回值
注意 await 只能在 async 中调用
async function someFunction(resTblist) {
try {
console.log(resTblist)
if (resTblist.length === 0) {
// 如果resTblist为空,则执行returnData() 函数,并将返回值赋值给resTblist
const resTblist = await returnData();
return resTblist;
}else {
console.log(resTblist);
return resTblist;
}
console.log(resTblist);
let dataTblist = resTblist;
console.log(dataTblist)
}catch (error){
console.error('An error occurred:', error);
return ['获取数据失败:'+ error];
}
}
在其他地方调用 并返回参数 如果不在 async 函数中 调用 那不能使用 await
用 this 进行返回值
someFunction(resTblist).then(resultTblist => {
console.log(resultTblist); // 这里将打印从 someFunction 返回的列表
// 你可以在这里使用 resultTblist 做进一步的处理
}).catch(error => {
console.error('处理 someFunction 结果时出错:', error);
});
如果不能使用 await 就写一个 asyncScript.js 文件 并引用:
async function asyncFunction() {
// 异步操作
const result = await someAsyncOperation();
return result;
}
// 假设 someAsyncOperation 是一个返回 Promise 的函数
function someAsyncOperation() {
return new Promise((resolve, reject) => {
// 异步操作逻辑
setTimeout(() => {
resolve('Done!');
}, 1000);
});
}