foreach 与 for of 利用async await实现等待异步执行请求的需求
forEach 只支持同步,不支持异步, 因此无法使用foreach解决等待异步执行请求的需求
可以使用for of 实现
async function RunFn() {
for(let i=0;i<newArr.length;i++){
let text = await proRun();//''我是第一个promise''
console.log(newArr[i]);
console.log(text);
for(let j=0;j<arr.length;j++){
let name = await proTest();
console.log(arr[j]);
console.log(name);//''我回来了''
}
}
console.log('end');
};
RunFn();
或者
Api
.geList(data)
.then(async (res) => {
if (res.data) {
let concatData = await getInformation(res.data);
listData.value = [
...listData.value,
...concatData,
];
}
})
.catch((err) => {
console.log(err);
});
const getAuthorInformation = async (concatData) => {
for (const item of concatData) {
let name= '';
if (item.author && item.author !== '助手') {
name= await getName(item);
} else {
name= item.id;
}
item['name'] = name;
}
return concatData;
};
const getName= (message) => {
let data = [];
if (message.author.indexOf(',') > -1) {
data = message.author.split(',');
} else {
data.push(message.author);
}
return Api
.getName(data)
.then((res) => {
if (res && res.length) {
let name = [];
res.forEach((itemName) => {
name.push(itemName.name);
});
return empName.join(',');
}
})
.catch((error) => {
console.log(error);
return '';
});
};