更改 observables 时,subscribe 内的 Observable 值未定义

用户3362334

我有一个来自某个库的函数,它返回一个我想从另一个函数调用的 Observable。我需要将该 Observable 传播到多个函数调用中。这是我的代码的结构:

extractSignature = (xml, signatureCount = 1) => {
    const observ = this.generateDigest(signedContent, alg).pipe(map(digest => {
            const sigContainer = {
                alg: alg,
                signature: signatureValue,
                signedContent: signedContent,
                digest: digest
            };
            console.log('sigContainer inside pipe: ');
            console.log(sigContainer);
            return sigContainer;
        }));

        return observ;
}

dissasemble(xml): Observable<SignatureContainerModel[]> {
    const observables: Observable<any>[] = [];
        for (let i = 1; i <= count; i++) {
            const extractSigObservable = this.extractSignature(xml, i);

            console.log('extractSigObs inside pipe: ');
            console.log(extractSigObservable);

            const observ = extractSigObservable.pipe(map(sigContainer => {
                console.log('sigContainer inside pipe: ');
                console.log(sigContainer);

                const hashContainers: HashContainerModel[] = [];
                const hashContainer: HashContainerModel = new HashContainerModel();
                hashContainer.digestAlgorithm = sigContainer.alg;
                hashContainer.bytes = sigContainer.digest;
                hashContainers.push(hashContainer);
                const signatureContainer: SignatureContainerModel = {
                    hashContainers: hashContainers,
                    signature: sigContainer.signature
                };

                console.log('observable inside pipe: ');
                console.log(observ);
            }));


            observables.push(observ);
        }

        return forkJoin(observables);
}

verify() {
    this.sigExec.dissasemble(this.fileContent).subscribe((signatureContainers: SignatureContainerModel[]) => {
                // signatureContainers is [undefined] here
                console.log('Sig Containers: ');
                console.log(signatureContainers);
                this.verifyHash(signatureContainers);
            });
}

signatureContainers变量在订阅中是 [undefined]。我不确定问题是什么,因为当我检查我在 map 函数中写的所有日志时,它们看起来很好

约翰·R。

RXJS 文档forkJoin

请注意,如果任何内部 observable 提供给forkJoin错误,如果您没有在内部 observable 上正确捕获错误,您将失去任何其他已经完成或已经完成的 observable 的值。如果您只关心所有内部 observables 成功完成,您可以在外部捕获错误。https://www.learnrxjs.io/learn-rxjs/operators/combination/forkjoin

您有可能在管道内出错,并且这些值正在丢失。

另外,我注意到你没有从你的管道中返回任何东西。这也可能是一个问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

订阅 observable 时,响应以角度显示未定义

jQuery:发生更改事件时,checked属性未定义

Angular-使用* ngfor时的未定义属性,(更改)

更改选择时未定义JQuery数据属性

当我尝试更改输入组件的值时,我收到“ TypeError:无法读取未定义的属性'value'”

在数组内获取对象值时出现问题:TypeError:无法读取未定义的属性“名称”

Observable 返回未定义

来自Observable对象的未定义默认值

传递时按钮值未定义

在函数内部时未定义值

AngularJS angular-ui-calendar TypeError:this。$ compile不是函数;this。$ compile在$ onInit()内时具有值,但在$ onInit()内时未定义

在 Typescript 中在地图内分配 Observable 时获得未定义

Javascript ReferenceError:在 src 中添加 Rx.js 时未定义 Observable

Knockout JS - 添加到数组时,Observable 变为未定义

页面刷新时无法读取mergeMap Observable 上未定义的属性“订阅”

值更改后未定义角度可观察值

如果变量的值未定义,则更改文本

如何从未定义更改单选按钮的值

useStore() 方法总是导致组件内未定义的值

角度范围内的值未定义

异步函数内的异步函数返回未定义的值

未定义值时如何定义参数值?

读取单选按钮的值时,值未定义

未定义值时增加属性的值

为什么当我将值重新分配给函数内的变量时,该变量变为未定义并且出现类型错误?

订阅 angular observable 是未定义的

如何处理未定义的Observable

JavaScript-当我更改链接的href时未定义的链接

更改布局时未定义Select2 jQuery函数