1 回答
TA贡献1775条经验 获得超11个赞
所有这些都应该使用 async/await 来完成,而不是将所有内容都包装在一个中Promise——这将极大地简化您的代码:
async function setUsersDefinitions(data, userID){
let users = new Array();
for(var i=0;i<data.length;i++){
var el = data[i];
var id = (el.id_adder === userID) ? el.id_added : el.id_adder;
var u = await getUserName(id);
users.push({
username: u,
locked: el.locked !== null,
canUnlock: el.locked === userID,
id: id
});
}
return users;
}
(注意:为简洁起见省略了错误处理)
然后你应该await在任何地方调用这个函数(它本身必须在一个async函数中):
async function doWork(){
var users = await setUsersDefinitions(some_data, some_userID);
console.log(users);
}
添加回答
举报