具体接口代码如下。
修改了一下格式,求指教,循环为何只能取到第一次的数据:
'use strict';
const organizationDb = '../../../models/organization';
const userOrganizationDb = '../../../models/user_organization';
module.exports = async function (ctx) {
try {
const res = await getDbData(ctx);
ctx.json({
status: 0,
msg: '成功',
res
});
} catch (error) {
console.log(error);
ctx.json({
status: 1,
msg: '失败'
});
}
};
function getDbData(ctx){
const db = ctx.app.db;
const organizationModel = db.import(organizationDb);
const userOrganizationModel = db.import(userOrganizationDb);
let results = [];
return new Promise((resolve, reject) => {
organizationModel.findAll({
where:{
name: {
$like: 'ext-%'
}
}
}).then(ori => {
Array.from(ori).forEach(record => {
userOrganizationModel.findAll({
where: {
'organization_id':record.id
}
}).then(result => {
//只会返回第一次循环的内容,后续的内容push不到数组里,为什么,应该在哪里resolve呢?
results.push(result);
resolve(results);
})
});
});
});
}
使用await的时候then和catch是无效的
你代码问题太多了