настроить список объектов внутри наблюдаемого вывода - PullRequest
0 голосов
/ 15 ноября 2018

Простите за неловкое название вопроса, я не уверен, как его сформулировать ...

У меня есть наблюдаемое, которое возвращает объект 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);
...