Многоуровневая карта слияния - http-запросы Typescript - PullRequest
0 голосов
/ 09 марта 2020

Я довольно новичок в машинописи, и у меня возникла проблема при попытке объединить несколько запросов вместе, чтобы дать мне объект для создания формы. Я работаю с API, который по сути является просто CRUD без каких-либо бизнес-логик c, поэтому я должен сделать это на внешнем интерфейсе.

Я должен запросить «форму», которая в свою очередь имеет количество элементов управления, запрошенных через отдельный вызов API. Каждый элемент управления затем должен сделать еще один вызов, чтобы получить дополнительную информацию «поля». Я играл с картой и слиянием, но, кажется, не могу сделать последний шаг на месте.

Без последнего шага к полям, он возвращает правильные данные ниже

    resolve(route: ActivatedRouteSnapshot): Observable<ResolvedData<IMatterForm>> | Promise<ResolvedData<IMatterForm>> | ResolvedData<IMatterForm> {
    return this.formService.getForm('07120d98-70a6-499b-917e-f225dac9fdaa').pipe(
        mergeMap((form: IForm) => {
            return this.formService.getControls(form.formID).pipe(                    
                map((controls: IFormControl[]) => {
                    // get the field for each control
                    return ({ data: { form, formControls: controls, fields: [] } });
                }),
                catchError(err => of({ data: null, errorMessage: err }))
            );
        }),
        catchError(err => of({ data: null, errorMessage: err }))
    );
}

Я не могу заполнить поля, хотя. Я пытался использовать from (controls.pipe ()), пробуя разные карты, но не уверен, что нужно.

Любые предложения, особенно с лучшим способом написать это, чтобы удалить вложение, было бы здорово. Или ссылки на пример, поскольку у меня нет терминологии для поиска, чтобы достичь этого.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...