我做了一个API调用如下:
public getAllLocations(): Observable<any>
{
location = https://v/locations.pipe(timeout(180000));
return location;
}
这个API getAllLocations()
在不同的components
中被多次调用,所以为了避免多次调用,我想检查一下这个Observable
是否有值。
如果该值不存在,我将调用API。否则,我将返回该位置。
我不确定我们如何在不订阅的情况下检查可观察到的数据
我是Angular的新手。请建议一个好的实现方法
2条答案
按热度按时间avwztpqn1#
就我对Angular的理解,如果没有
subscribe
方法,你就不能检查订阅数据的值。方法subscribe
是当相关函数被调用时发出API调用的方法。如果您需要在不影响订阅的情况下检查数据值,则可以使用
tap
和do
运算符。m528fe3b2#
如果不订阅observable,就不可能检查返回值。您可以使用
takeWhile
运算符检查API是否返回预期结果。在您的情况下,您可以检查API是否返回不可空值,如果值存在,则继续。如果不满足条件,takeWhile
将自动取消订阅。举个例子