Есть несколько вещей, которые можно сделать, чтобы улучшить этот код. Во-первых, что-нибудь в форме ...
x = await new Promise(function(resolve, reject) {
promiseReturningFunction(params).then(response => {
resolve(response);
});
});
... можно переписать как ...
x = await promiseReturningFunction(params);
... потому что, когда у вас есть функция возврата обещания, нет необходимости создавать другое обещание (с new Promise
).
Код, в котором вы указываете проблему, вообще не требует обещания ...
//here is iam having trouble..
result.rolePermissions = [];
result.roles.forEach(role => {
rolePerms[role.name] = {};
result.permissions.forEach(permission => {
rolePerms[role.name][permission.name] (role.permissions.indexOf(permission._id) > -1)?true:false;
});
});
Наконец, я озадачен использованием data
в этом коде ...
return {
status:true,
test:data.rolePermissions,
data:result
}
Возможно ли, что, хотя использование Promises было нестандартным и запутанным, этот код в значительной степени работал, и реальная проблема заключается в передаче data.rolePermissions
, а не в объект, который вы только что создали и протестировали с помощью журнала ( result.rolePermissions
)