我试图从一个压缩的 observables 数组中得到结果,这些压缩数组本身就是一个简单的 observables 数组的压缩包。如下:
a(x) {
const observables = [of(x), of(x+1)];
return zip(observables);
}
b() {
const observables = [a(1), a(2)];
return zip(observables);
}
其余的代码被断言可以正常工作。实际上,当内部 a() 函数返回单个 observable(当然是对象数组,以反射(reflect) observable 的 zip)时,外部 zip 工作正常。然而,当使用内 zipper 时,内 zipper 内的代码永远不会被调用。
我在这里做错了什么?
最佳答案
我在这个问题上花了多少小时..
尝试:
zip(...observables);
参数必须被传播,否则你的数组将被视为
ObservableInput
,这可能不是所需的行为。您可以将此函数作为用例的安全后备:
export function zipArray<T>(array: ObservableInput<T>[]): Observable<T[]> {
return array.length ? zip(...array) : of([]);
}
并这样称呼它:
zipArray(observables)
关于可观察的 zip(数组)的 RXJS zip 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53135647/