Изменить объект рекурсивно и вернуть наблюдаемое - PullRequest
0 голосов
/ 23 мая 2019

Вот моя проблема ... У меня есть способ, которым я хочу зашифровать запрос тела и сделать свой запрос.Но для шифрования данных я использую ресурс моей компании, и этот ресурс зашифровывает данные и возвращает Observable. Позвольте мне показать код ..


public encryptBodyRequest<T>(obj: T): Observable<T> {
        Object.keys(obj)
            .forEach((property) => {
                if (obj[property] instanceof Object) {
                    this.encryptBodyRequest(obj[property]);
                } else {
                    this.resource.encrypt(obj[property])
                        .subscribe((encrypted) => obj[property] = encrypted);
                }
            });

        return Observable.of(obj);
}


С другой стороны, у меня естькод блока, который делает это ...

let req = {
    name: '',
    age: '30',
    address: {
       street: '3th avenue',
       num: '120',
       city: {
          zipcode: '10',
          name: 'city name',
          province: 'province name'
       }
    }
};

return this.encryptBodyRequest(req)
           .flatMap((_req) => this.method.post(url, _req));

Когда мой параметр 'req' передается методу, который делает запрос, он не зашифровывается ... он возвращается как оригинал let req.Он зашифрован только внутри subscribe, в методе encryptBodyRequest.

Примечание: этот let req является только примером.

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