如何从BehaviorSubject完成后获取数据?

时间:2017-08-01 14:36:06

标签: rxjs

我有一个返回BehaviorSubject的函数但是当我尝试使用我从函数返回的数据时,我需要在所有数据都恢复后使用它,有没有办法知道{何时{ {1}}完成所有数据?

我尝试使用BehaviorSubject,但它永远不会被调用。这是我正在使用的代码。

.finally

附件是console.log enter image description here

的屏幕截图

1 个答案:

答案 0 :(得分:2)

最简单的方法是收集数组中的所有数据,并在收集数据后仅调用next。更好的是:根本不要使用主题。人们很少需要创造一个主题。通常人们使用Subjects时,他们应该使用更简化的可观察工厂方法或操作员:

getChildren(node: TreeNode) {
  return Observable.defer(() => {
    const result = [];
    return node.doForAll(d => result.push(d.id)).then(() => result);
  });
}