Angular 2中的多线程

时间:2018-06-19 15:48:52

标签: angular typescript rxjs

我有一个服务类,该服务类使用forkJoin进行许多异步ajax调用,将所有响应映射到一个类,缓存该类并返回该类的Observable。如果数据在高速缓存中,那么它将跳过ajax调用,仅从高速缓存中返回数据。某些请求可能需要15秒钟以上才能运行。如果该函数需要进行ajax调用,则会在服务类上设置一个布尔值“ loading”属性。

该服务作为单例注入到许多组件中。我希望在对该方法进行调用并且加载已经在进行中时,该调用“等待”加载线程完成,然后获取缓存的值。但是,我很难等待一个线程。我尝试了while(loading){setTimeout(...)},但是整个系统死机了。我也尝试过递归调用该方法,但是它很快达到了堆栈上的最大调用次数。

处理此问题的最佳策略是什么?

0 个答案:

没有答案