1 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
所有這些都應(yīng)該使用 async/await 來(lái)完成,而不是將所有內(nèi)容都包裝在一個(gè)中Promise——這將極大地簡(jiǎn)化您的代碼:
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;
}
(注意:為簡(jiǎn)潔起見(jiàn)省略了錯(cuò)誤處理)
然后你應(yīng)該await在任何地方調(diào)用這個(gè)函數(shù)(它本身必須在一個(gè)async函數(shù)中):
async function doWork(){
var users = await setUsersDefinitions(some_data, some_userID);
console.log(users);
}
添加回答
舉報(bào)