递归更改对象并返回可观察的

时间:2019-05-23 13:43:02

标签: javascript typescript recursion observable

这是我的问题..我有一种方法可以加密正文请求并提出请求。但是,为了加密数据,我使用了我公司的一种资源,并且该资源对数据进行了加密并返回了一个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仅是一个示例。

0 个答案:

没有答案