使用 rxjs,我有一个昂贵的计算来映射来自 a 的结果BehaviorSubject:
const obs$ = sameBehaviorSubject.pipe(map(expensiveComputation));
Run Code Online (Sandbox Code Playgroud)
然后在我的代码的多个其他部分中,我订阅了该 observable。每次我订阅时,它都会重新运行expensiveComputation。我怎样才能防止这种情况?
您可以使用 shareReplay:
const obs$ = sameBehaviorSubject.pipe(map(expensiveComputation), shareReplay(1));
Run Code Online (Sandbox Code Playgroud)
现在您可以obs$多次订阅而无需expensiveComputation多次订阅。
| 归档时间: |
|
| 查看次数: |
1190 次 |
| 最近记录: |