我遇到的情况是我基本上需要做类似下面的事情。
observableFoo
.flatMap(bar(param[0]))
.flatMap(bar(param[1]))
//...
.flatMap(bar(param[N]))
function bar(param){
var fn = function(...){
// return some observable depending on param
}
return fn;
}
其中N仅在运行时已知。如何以功能性的方式实现它"不采用命令式循环或一些可变变量?
答案 0 :(得分:2)
一种功能性的方法是折叠param
数组(使用JavaScript的.reduce
方法):
param.reduce(function(o, p) {
return o.flatMap(bar(p)); // probably inline the bar call
}, observableFoo);
答案 1 :(得分:0)