Typescript 将RxJS中的观测值从数组链接到函数
我有一个位置,我有一个数组的值 对于这些变量中的每一个,我都想调用一个可观察变量,但只有在前一个可观察变量完成之后 有没有一种更“RxJS”的方式来完成以下任务Typescript 将RxJS中的观测值从数组链接到函数,typescript,rxjs,Typescript,Rxjs,我有一个位置,我有一个数组的值 对于这些变量中的每一个,我都想调用一个可观察变量,但只有在前一个可观察变量完成之后 有没有一种更“RxJS”的方式来完成以下任务 let num = 0; let myObs = new Observable(observ => { observ.next(1); }) let content=['x','y','z']; myObs.subscribe(data => { let i = 0; let
let num = 0;
let myObs = new Observable(observ => {
observ.next(1);
})
let content=['x','y','z'];
myObs.subscribe(data => {
let i = 0;
let that = this;
let inlineFunc = function(){
if ( i < content.length){
that.gen(num).subscribe(() => {
i++;
inlineFunc();
});
}else{
observer.next(doc);
}
};
inlineFunc();
});
gen(num:number) : Observable < any >{
return num*num;
},
设num=0;
设myObs=新的可观测值(observ=>{
观察下一步(1);
})
让内容=['x','y','z'];
myObs.subscribe(数据=>{
设i=0;
让那=这;
设inlineFunc=function(){
如果(i{
i++;
inlineFunc();
});
}否则{
下一个观察员(doc);
}
};
inlineFunc();
});
gen(num:number):可观察{
返回num*num;
},
如果您想连续重复调用可观察的
,可以使用
假设您有一个内容数组:
let content=['x','y','z'];
对于内容中的每个值,您都希望调用gen()
函数,该函数返回一个可观察的:
gen(num: number): Observable<any> {
return Observable.of(num * num);
}
因为您的num
为0。我假设gen()
工作您可以首先使用from运算符获得可观察的值,然后使用REDUCT
Observable.from([...values])
.reduce( this.reducingFn, 1 )
ReduceingFunction是一个接受两个参数的函数,第一个是起始值(它是reduce函数中的第二个参数),第二个是外部流发出的当前值(值数组中的每个值)
0
0
0
0
Observable.from([...values])
.reduce( this.reducingFn, 1 )
// somewhere in you class
reducingFn( accumulatedValue, value){
return accumulatedValue * value
}