在我的Angular 2应用程序中,有几层REST API调用的嵌套订阅返回了observable。删除嵌套的最佳方法是什么?
我需要计算工作技能与用户所有工作技能之间的相似性。然后我需要将相似性百分比保存到相应的匹配文档中。用户和比赛之间存在一对多的关系。此外,工作和比赛之间存在一对多的关系。要更新匹配,我需要先找到ID。
// Makes a GET request to '/api/jobs'
this.jobService.getJobs().subscribe((jobs: Job[]) => {
for (let job of jobs) {
// Determine the similarity between a job's skills and the user's skills
let percentage = this.calculatePercentage(job.skills, this.currentUser.skills)
// Makes a GET request to '/api/matches/?jobId=12345&userId=11111'
this.matchService.getMatchForUserAndJob(job._id, this.currentUser._id).subscribe((match: Match) => {
// Makes a PATCH request to '/api/matches/54321'
this.matchService.updateMatchPercentage(match._id, percentage).subscribe()
})
}
})
作业
{
'_id': 12345,
'skills': [
{ 'name': 'Skill 1' },
{ 'name': 'Skill 2' }
]
}
匹配
{
'_id': 54321,
'jobId': 12345,
'userId': 11111,
'percentage': 100
}
flatMap是否可以在这种情况下起作用?
有更好的方法来更新比赛吗?