【发布时间】:2021-05-30 19:40:12
【问题描述】:
我是异步/等待的新手。当我调用该函数时,第一个 console.log(newArr) 打印数组元素,但第二个是空数组,当我返回空数组时。有人可以帮我解决我哪里出错了。
const prefixPM = 'PM';
const decryptComment = (comment) => {
const data = decrypt(comment).then(function (result) {
const buf2 = Buffer.from(result, 'base64').toString('ascii');
return buf2;
});
return data;
};
const pmData = await queryInterface.sequelize.query(
`select ram.id, ra.name from rater_attributes ra
inner join rater_attribute_mappings ram
on ra.id = ram.raterAttributeId
inner join attributes a
on a.id = ram.by
where a.name='Project Manager'`,
{ raw: true, type: Sequelize.QueryTypes.SELECT },
);
const createPMAttributes = (ratingId, rating) => {
const newArr = [];
pmData.map(async (data) => {
const attribute = `${prefixPM}${data.name}`;
let pmComment = rating.PMComment
? await decryptComment(rating.PMComment)
: null;
pmComment = JSON.parse(pmComment);
newArr.push({
ratingId: ratingId,
raterAttributeMappingId: data.id,
rating: rating[`${attribute}`],
comment:
pmComment && pmComment[`${attribute}Comment`] ? pmComment[`${attribute}Comment`] : null,
createdAt: rating.createdAt,
updatedAt: rating.updatedAt,
});
console.log(newArr) -- this prints the newArr elements
});
console.log(newArr); -- this prints empty arr
return newArr
};
【问题讨论】:
标签: javascript asynchronous async-await promise