【发布时间】:2016-10-31 14:06:13
【问题描述】:
我有以下物品:
class Question {
idQuestion: string;
question: string;
typeQuestion: string;
}
class Answer {
idAnswer: string;
idQuestion: string;
answer: string;
}
class Option {
idOption: string;
idQuestion: string;
option;
}
我想填充以下对象:
class QuestionOptionsAnswer {
question: Question;
answer: Answer;
options: Option[];
}
现在,我对每种对象都有一个服务,所以我们可以用以下方式来说明它:
questionService.getQuestions();
answerService.getAnswers();
optionService.getOptions();
要填充 questionoptionsanswer 对象,我执行了嵌套请求:
questionService.getQuestions()
.subscribe(
answerService.getAnswers()
.subscribe(
optionService.getOptions()
.subscribe();
)
)
我可以正确填充questionoptionsanswer 对象,但速度很慢,所以我认为我的做法很糟糕。拥有questionoptionsanswer 背后的想法是使用 angular2 指令以一种简单的方式呈现html。
我读到了flatMap、switchMap、forkJoin,但我不太确定如何使用它们。
加载这些数据的好方法是什么?
questionoptionsanswer 将有一个问题对象、一个与之关联的答案,以及取决于typeQuestion 的可能选项,即:选择、单选、多个等。
【问题讨论】:
-
真正的问题是您是否需要按此顺序调用请求。换句话说,一个 HTTP 请求的响应会影响下一个 HTTP 请求吗?
-
不是独立的。答案和选项取决于每个问题,换句话说:每个问题都有一个答案和选项(取决于
typeQuestion)
标签: angular typescript rxjs rxjs5