所以,我认为问题在于javascript的基础。
'use strict';
module.exports = function accountWithSingleOrganisation(Account) {
Account.accountWithSingleOrganisation = function(accessToken, cb) {
accessToken.user(function(err, user) {
if (err) return cb(err);
let accData = {};
user.role(async (err, role) => {
if (err) return cb(err);
for (let it in role.scopes) {
if (role.scopes[it].account == null) break;
console.log('1');
await Account.findById(role.scopes[it].account, (err, account) => {
if (err) return cb(err);
console.log('2');
// Assigning Data Here
accData = Object.assign(accData, {
name: account.name,
id: account.id,
});
});
};
console.log(accData);
return cb(null, accData);
});
});
};
};
在我的程序中,我不知道如何正确使用async await
,由于for循环被执行,函数甚至在分配数据之前返回accData。你能告诉我如何使用async await,或者任何其他方式,通过它,我的函数首先分配对象的数据,然后返回数据。
我们可以在使用await的地方获取响应,然后推送数据。