【发布时间】:2018-03-30 11:09:23
【问题描述】:
我正在处理字符串,但有些函数是可观察的,所以我试图找出一种简单的方法来做到这一点。
假设我有以下课程:
class Something {
doSomething(input: string): Observable<string> {
return of('123 - ' + input);
}
}
of('123 - ' + input) 是被调用并返回字符串的服务(如 http.get())。
我想将服务的每个结果附加到下一个服务的结果,直到达到最后一个。 但我不知道如何做到这一点。
我得到的最新信息如下:
return of(
new Something(),
new Something(),
new Something(),
)
.pipe(
reduce(
(acc, curr, i) => {
console.log('NEXT', acc);
if(!(curr instanceof Observable)){
acc = of(acc);
}
return acc.pipe(map(c => curr.doSomething(c)));
},
'Start string: '
);
这将导致Start string: 123 - 123 - 123 -,但事实并非如此。我已经没有办法让这个工作了
如果您想尝试一些事情,这里有一个基本的 stackblitz 入门: https://stackblitz.com/edit/typescript-htcna8?file=index.ts
【问题讨论】:
-
这些调用需要串联运行还是可以并行运行?
-
@IngoBürk 调用 A 的结果在调用 B 中需要,然后在 C 中传递,... 所以在意甲中 :)
标签: rxjs observable