问:
//获取用户权限
requestTableHeader() {
let arr = [];
if (window.globalInfo.userMess) {
window.globalInfo.userMess.roleList.forEach((item) => {
arr.push(item.roleId);
});
this.sendGetHeaderRequest(arr);
} else {
var timeout = 5000,
count = 0,
step = 50;
var timer = setInterval(() => {
count += step;
if (window.globalInfo.userMess) {
clearInterval(timer);
window.globalInfo.userMess.roleList.forEach((item) => {
arr.push(item.roleId);
});
this.sendGetHeaderRequest(arr);
}
if (count > timeout) {
clearInterval(timer);
}
}, step);
}
},
//新增fields参数接口
sendGetHeaderRequest(arr) {
ajaxMethods(
"post",
`${sysApi}manage/title`,
{
permissionId: window.pageId,
roleIdList: arr,
},
(data) => {
let res = data.data;
var fields = res.fields ? JSON.parse(res.fields) : "";
console.log(fields, "this.fields ");
if (fields) {
console.log(fields);
fields[0].codeList.map((item) => {
console.log(item);
switch (item.code) {
case 1:
// item.name = "超级管理员";
// this.userPermission = "超级管理员";
this.roleId = 1;
break;
case 2:
// item.name = "普通用户";
// this.userPermission = "普通用户";
this.roleId = 2;
break;
// case 1005:
// break;
}
});
// this.businessArr = fields[0].codeList;
// this.search.bisCode = fields[0].codeList[0].bsCode;
// this.reloadList(1);
this.reloadTaskList(1);
// this.userNameCode = fields[0].code;
// console.log(fields[0].codeList);
// console.log(this.businessArr);
}
// this.dicTypes = fields[0].codeList
},
this
);
},这个代码requestTableHeader直接.then为什么报错了,语法错误,没有then方法
正确回答:
根据您提供的代码,`requestTableHeader()`函数和`sendGetHeaderRequest(arr)`函数是使用回调函数方式进行异步操作的。这种情况下,不能直接使用`.then()`来处理结果。
如果您想要使用`Promise`来处理异步请求的结果,需要对代码进行相应的修改。以下是修改后的代码示例:
requestTableHeader() {
return new Promise((resolve, reject) => {
let arr = [];
if (window.globalInfo.userMess) {
window.globalInfo.userMess.roleList.forEach((item) => {
arr.push(item.roleId);
});
this.sendGetHeaderRequest(arr, resolve, reject); // 将resolve和reject作为参数传递给sendGetHeaderRequest函数
} else {
var timeout = 5000,
count = 0,
step = 50;
var timer = setInterval(() => {
count += step;
if (window.globalInfo.userMess) {
clearInterval(timer);
window.globalInfo.userMess.roleList.forEach((item) => {
arr.push(item.roleId);
});
this.sendGetHeaderRequest(arr, resolve, reject); // 将resolve和reject作为参数传递给sendGetHeaderRequest函数
}
if (count > timeout) {
clearInterval(timer);
}
}, step);
}
});
},
sendGetHeaderRequest(arr, resolve, reject) {
ajaxMethods(
"post",
`${sysApi}manage/title`,
{
permissionId: window.pageId,
roleIdList: arr,
},
(data) => {
let res = data.data;
var fields = res.fields ? JSON.parse(res.fields) : "";
console.log(fields, "this.fields ");
if (fields) {
console.log(fields);
fields[0].codeList.map((item) => {
console.log(item);
switch (item.code) {
case 1:
// item.name = "超级管理员";
// this.userPermission = "超级管理员";
this.roleId = 1;
break;
case 2:
// item.name = "普通用户";
// this.userPermission = "普通用户";
this.roleId = 2;
break;
// case 1005:
// break;
}
});
// this.businessArr = fields[0].code