如何合并 Bacon.js 中的两个属性

How to merge two properties in Bacon.js

假设我有两个 Bacon.js 属性。一个是子对象——也许只是他的名字。另一个 属性 对象与他或她所穿的衣服 - 裤子颜色和衬衫颜色。

在我的例子中,我使用 Angular-Bacon 从 AngularJS 范围变量创建属性。

如何获得将两者合并在一起的 属性?我希望我可以做类似下面的事情(假设我有 Lodash 可用):

var outfit = $scope.$watchCollectionAsProperty('outfit'); // {shirt: 'blue', pants: 'green'}
var child = $scope.$watchCollectionAsProperty('child'); // {name: 'Jimmy'}

var clothedChild = outfit.map(function(it) {
    return _.merge(it, child.value());
});

不过这行不通。

我是 RFP 的新手,正在尝试在 Angular 应用程序中使用培根,但我很难理解它。

如有任何提示,我们将不胜感激。

答案并不像我想的那么复杂 - 我似乎只是不知道要查找的术语。

var clothedChild = Bacon.combineWith(function(p1, p2) {
    return _.merge({}, p1, p2);
}, child, outfit);

你也可以

child.combine(outfit, function(child, outfit){
  return _.merge({}, child, outfit);
});

短一点。