subject
in user.subjects = subjects
belowundefined
不是一组主题。
背景:我有三个表——用户、主题以及用户和主题之间的关系,称为 users_subjects。
我的目标是最终的 res 应该包括一组主题名称。
为此,我需要三个异步调用。
从用户表中获取用户
从表示用户和主题之间关系的表(users_subjects)中获取每个用户的主题
从主题表中获取每个主题 ID 的名称
我的挑战是输入主题 ID 并接收名称。addSubjects 的上半部分是我尝试解决它的尝试,尽管没有成功:
//for every user take its id
//run its id with tutors-subjects to get all subject id with that user id
//for each subject id get is subject name through with subjects service
//add subjects key
//add each subject to an array
const addSubject = (knexInstance, users, res) => {
let resultsName = []
function testIt(subjectsArray) {
// let resultsName = []
Promise.all(
subjectsArray.map((id) =>
SubjectsServes.getById(knexInstance, id)
.then(subjectNameObject => {
console.log(subjectNameObject)
resultsName.push(subjectNameObject.subject_name)
})
.catch(err => {
//console.log(err)
})
)).then(() => {
return resultsName
})
}
let results = []
Promise.all(
users.map((user) =>
TutorsSubjectsService.getAllSubjectsForATutor(knexInstance, user.user_id)
.then(subjectsIdArray => {
return testIt(subjectsIdArray)
})
.then(sub => {
user.subjects = sub
results.push(user)
})
.catch(err => {
//console.log(err)
})
)).then(() => {
return res.json(results)
})
.catch(err => {
//console.log(err)
})
}
我遇到的唯一问题是 testIt 函数。到那时为止一切正常。他们只是在这里查看上下文。
我的问题是如何从 中获取正确的 subjectNames testIt?
(testItlast中的 returnthen没有帮助;整个函数 testIt 只是undefined如标题中所述返回)
汪汪一只猫
相关分类