Простите за неловкое название вопроса, я не уверен, как его сформулировать ...
У меня есть наблюдаемое, которое возвращает объект Form
.
export class QuestionConfiguration {
//...
}
export class Question {
configure(qc: QuestionConfiguration) {
// set variables...
};
}
export class Form {
constructor(public question: Question[]) {}
}
// lets assume this does a http call and returns an instanstiated list of forms.
let doFormsRequest$ = (): Observable<Forms[]> => {
}
И у меня есть другой метод, который возвращает конфигурацию для каждого внутреннего question
из Form.questions
:
let getQuestionConfiguration$ = (question: Question): Observable<QuestionConfiguration> {
// ...
}
Я хочу создать ReplaySubject(1)
, который будет наблюдателем наблюдаемой, которая конфигурирует каждый из вопросов с наблюдаемой параметром questionConfiguration и возвращает только тогда, когда все подвопросы были настроены.
Есть ли способ передать / отобразить / что-нибудь еще из первой наблюдаемой, чтобы вернуть полностью сконфигурированную форму для достижения этой цели?
что-то вроде:
// using this as an observer so the configuration logic only happens once.
let mySubject: Subject<Form[]> = new ReplaySubject(1);
doFormsRequest$().pipe(
someOperator((forms: Forms[]) => {
// returns the configured form after calling and modifying each question according to the output of the getQuestionConfiguration observable
// i.e. question.configure(qc: QuestionConfiguration);
})
).subscribe(mySubject);