Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改可观测值时,订阅内的可观测值未定义_Javascript_Angular_Typescript_Reactivex - Fatal编程技术网

Javascript 更改可观测值时,订阅内的可观测值未定义

Javascript 更改可观测值时,订阅内的可观测值未定义,javascript,angular,typescript,reactivex,Javascript,Angular,Typescript,Reactivex,我有一个来自某个库的函数,它返回一个我想从另一个函数调用的可观察对象。我需要将这种可观察性传播到多个函数调用中。下面是我的代码的结构: extractSignature = (xml, signatureCount = 1) => { const observ = this.generateDigest(signedContent, alg).pipe(map(digest => { const sigContainer = {

我有一个来自某个库的函数,它返回一个我想从另一个函数调用的可观察对象。我需要将这种可观察性传播到多个函数调用中。下面是我的代码的结构:

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变量在subscribe中[undefined]。我不确定问题出在哪里,因为当我检查我在map函数中编写的所有日志时,它们看起来很好

RXJS关于forkJoin的文档:

请注意,如果提供给forkJoin的任何内部观察值出现错误,则如果您没有正确捕获内部观察值上的错误,您将丢失任何其他观察值的值,这些观察值本应或已经完成。如果你只关心所有成功完成的内部观察,你就可以捕捉到外部的错误。

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


另外,我注意到你没有从你的烟斗里归还任何东西。这也可能是个问题。

天哪,谢谢。就是这样,我忘了在我的一个管道内添加返回